从第一优先级mySql的行中选择特定项

时间:2014-12-18 19:30:18

标签: mysql sql select sql-order-by

我有一张表users

id | Name |
1    John 
2    Dwayne
3    Daniel
4    Ronaldo
5    Messi
6    Gareth
7    Leonardo
8    Brad

如果我按(7,5,1,3)的顺序排列了ID,我想选择limit 6,那么预期输出应如下: -

id  Name 
7 | Leonardo
5 | Messi
1 | John 
3 | Daniel
2 | Dwayne
4 | Ronaldo

我以前做的是这个,但没有得到预期的输出。帮助!

"select * from users ORDER BY FIELD(user_id,7,5,1,3) LIMIT 6"

1 个答案:

答案 0 :(得分:1)

您的查询已结束。它只是没有考虑所有其他用户ID。试试这个:

ORDER BY FIELD(user_id,7,5,1,3) > 0 desc,
         FIELD(user_id,7,5,1,3)
LIMIT 6;

您的版本存在的问题是field()在没有匹配时返回00将首先订购。