Chinaunix

标题: 遇到错误,单行合并多行查询语句 [打印本页]

作者: newstudent2011    时间: 2011-07-19 22:15
标题: 遇到错误,单行合并多行查询语句
语句:
SELECT *
FROM `posts`
WHERE `f_id`
IN ( 1, 2, 3 )

查询结束,返回n条记录:
f_id =1 的结果有n多
f_id =2 的结果也有n多
f_id =3 的结果也有n多

这不是我想要的

我想要的结果只有三条:

f_id =1 的结果,只取最后第一条
f_id =2 的结果,只取最后第一条
f_id =3 的结果,只取最后第一条

还有个字段id 可以用来排序,
如何写这些 "order by id desc  limit" 才能输出我想要的结果?
作者: newstudent2011    时间: 2011-07-20 10:20
求高人解答
作者: eugene_jin    时间: 2011-07-20 10:35
SELECT *
FROM `posts`
WHERE `f_id`
IN ( 1, 2, 3 ) GROUP BY f_id ORDER BY id DESC

你看下是否满足你的要求....
作者: newstudent2011    时间: 2011-07-20 11:06
回复 3# eugene_jin


    很好,我测试过了

但有个问题ORDER BY id DESC
这个语句似乎没起作用,无论DESC还是 默认,取出来的三条数据,都不是最后一条,而是最早的一条(取出结果是id号最小,我想要最大的)
作者: kerlion    时间: 2011-07-20 14:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: kerlion    时间: 2011-07-20 14:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: kerlion    时间: 2011-07-20 14:53
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2