我有一个像这样的数据库表:
----------------------------
id name cat
============================
1 20.gif logo
2 21.gif logo
3 22.gif logo
4 15.gif web
5 16.gif web
6 17.gif web
7 23.gif logo
8 18.gif web
9 19.gif web
我想获取最高(每只猫的最新插入记录),例如:
----------------------------
id name cat
============================
7 23.gif logo
9 19.gif web
为此我查询了:
SELECT id, name, cat FROM portfolio GROUP BY cat ORDER BY name DESC
但是因为名称字段是一个字符串,所以我不能在名称上应用 ORDER BY。
有什么想法吗?
最佳答案
SELECT id, name, cat
FROM portfolio
GROUP BY cat
ORDER BY cast(substring(name, 1, INSTR(name, '.') - 1) as signed) DESC
关于MySQL:在数据类型为 varchar 的字段上应用 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10630342/