1

我有一个像这样的数据库表:

----------------------------
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。

任何的想法..?

4

2 回答 2

1
SELECT id, name, cat 
FROM portfolio 
GROUP BY cat 
ORDER BY cast(substring(name, 1, INSTR(name, '.') - 1) as signed) DESC    

SQLFiddle 示例

于 2012-05-17T05:46:09.557 回答
0

是的,我找到了解决方案:

select id, name, cat from (select * from portfolio ORDER BY id DESC) AS x GROUP BY cat

我从检索每个组中的最后一条记录中获得了帮助

感谢Stackoverflow,它真的让开发人员的生活变得轻松 :)

于 2012-05-17T05:53:20.443 回答