我有一张这样的表:
id number otherfields
-------------------------------------------
664 48 aaa
665 49 bbb
666 55 ccc
667 48 ddd
number
字段下的我的查询分组,我希望它选择第一个(最低)id
,以便数据像ccc,aaa,bbb
一样出现(按{{排序}时1}})。但是我得到了number
- 换句话说,它正在选择#667行,而不是数字48的#664。
奇怪的是,这只发生在实时服务器上;在localhost上我得到了正确的方法,即使表完全相同(从localhost导出,导入到服务器上)。
是否可以确保ccc,ddd,bbb
子句选择第一个ID?
答案 0 :(得分:4)
不,在MySQL中是不可能的。你必须使用连接。
SELECT id, number, otherfields FROM table
WHERE id in (SELECT min(id) FROM table GROUP BY number)
答案 1 :(得分:0)
SQL-92版本。
SELECT
id, number, otherfields
FROM
table t
join (SELECT min(id) as id, number FROM table GROUP BY number) sq --subquery
on t.id = sq.id