我有一张表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"
答案 0 :(得分:1)
您的查询已结束。它只是没有考虑所有其他用户ID。试试这个:
ORDER BY FIELD(user_id,7,5,1,3) > 0 desc,
FIELD(user_id,7,5,1,3)
LIMIT 6;
您的版本存在的问题是field()
在没有匹配时返回0
。 0
将首先订购。