MYSQL使用order和GROUP BY

时间:2012-03-12 14:21:08

标签: mysql

我有以下声明

SELECT * FROM cds  
WHERE genre='rock'  
GROUP BY cat_no  
ORDER BY ABS(track) DESC  
LIMIT 0,3

每张CD在每个音轨的数据库中有一行,而另一个CD作为一个整体,而不是音轨编号被称为'包'(但只有当CD有多个音轨时),上述声明才会选择三个'捆绑'条目,但我希望能够选择最新的3.如果我使用ABS(日期,曲目)它不起作用。

genre cat_no  track  date
rock  001     1      09323123
rock  001     2      09323123
rock  001     bundle 09323123
rock  002     1      09323123
rock  002     2      09323123
rock  002     bundle 09323123
rock  003     1      09323123
rock  003     2      09323123
rock  003     bundle 09323123

1 个答案:

答案 0 :(得分:0)

这个怎么样:

SELECT * FROM cds  
WHERE genre = 'rock'
ORDER BY ABS(track) ASC
LIMIT 0, 3;

或者:

SELECT * FROM cds  
WHERE genre = 'rock' AND track = 'bundle'
ORDER BY date DESC
LIMIT 0, 3;