怎样从数据库中取出符合条件的最后一条记录

比方说每个姓名对应1个电话号码,而有的电话号码相同,怎样取出每个电话号码最后一次出现的记录!能不能具体写出代码!... 比方说每个姓名对应1个电话号码,而有的电话号码相同,怎样取出每个电话号码最后一次出现的记录!
能不能具体写出代码!
展开
 我来答
du瓶邪
推荐于2017-10-02 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2822万
展开全部
可以用到函数select1.
select1()
函数说明: 从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法: datasetName.select1(selectExp{,filterExp{,rootGroupExp}})
参数说明: selectExp 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 filterExp 过滤条件 rootGroupExp 是否root数据集表达式。
返回值: 数据类型不定,由selectExp的运算结果决定 特别说明: 当对数据集运用过滤条件后确定只剩一条记录时,虽然select的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。
百度网友748c615
推荐于2017-09-08 · TA获得超过942个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:146万
展开全部
表中如果有ID字段且为自增长型的:
sql="Select top 1 * from TABEL where Phone='88888888' order by id DESC"
因为是自增长,所以ID最大的就是最后添加进去的,用DESC来控制ID从大到小输出,加上Select top 1来控制取记录的个数,就是相册记录中最后一个!

明白思路之后,再结合你的数据表的结构,SQL语句的写法就多了:
1.Sql="Select top 1 * from TABEL where Phone='88888888' order by AddTime DESC"
2.select * from Table where AddTime=(select max(AddTime) from Table group by Name)
3.Sql="Select top 1 * from TABEL where Phone='88888888' order by ID DESC"
关键是思路正确。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhlqj
2008-01-23 · TA获得超过383个赞
知道小有建树答主
回答量:624
采纳率:28%
帮助的人:81.4万
展开全部
用查找命令locate
设变量,把字段值付给变量,看查找是否为真,为真赋值继续查,为假继续查直到记录尾,最后为真所付的值即为“取出每个电话号码最后一次出现的记录!”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵猫的羽毛
2008-01-24 · TA获得超过167个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:249万
展开全部
字段里有没有记录时间的?有的话可以这样
select * from 表名 where 记录时间=(select max(记录时间) from 表名 group by 姓名id)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咳咳咳三十岁
2008-01-24 · TA获得超过146个赞
知道答主
回答量:150
采纳率:0%
帮助的人:97.5万
展开全部
select top 1 from table where tel=123456 order by tel_time desc
就是它
没错的
简单管用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式