我的表格如下:
ID |类型
01 |一个
02 | ç
03 | b
04 |一个
05 | b
06 |一个
我想输出按 Type 分组的最后添加条目的 ID 。 ID是一个自动增量字段,因此最后添加的条目显然是最高的数字。
SELECT * FROM `table` GROUP BY `Type` ORDER BY `ID` DESC, `Type` ASC
这会按 Type 对行进行分组,然后按 ID 进行排序,这样我就可以获得ID 1,2,3,而我想先排序THEN组以获得结果:6 ,5,2
答案 0 :(得分:1)
如果您的MySQL版本允许子选择(和5.x确实),这应该有效:
SELECT *
FROM (SELECT * FROM `table` ORDER BY `id` DESC) AS tmp
GROUP BY `type`
ORDER BY `type` ASC;
答案 1 :(得分:1)
这可能就是你要找的......
SELECT MAX(`ID`), `Type` FROM `table` GROUP BY `Type` ORDER BY `Type` ASC
读作为每组Type选择ID的最大值。
答案 2 :(得分:0)
这是一种没有子选择的经典方式:
SELECT t1.* FROM table t1
LEFT JOIN table t2
ON (t2.type = t1.type AND t2.id > t1.id)
WHERE t2.id IS NULL
读为“在表格中选择行,使得没有其他具有相同类型的行具有更大的ID”。