假设我有一个数据库,该表包含ide为1到20的行.
我想先返回ID为3,4,1的3行,然后返回其他行.这是我的代码:
- SELECT id
- FROM prod
- ORDER BY field( id,3,1 )
- LIMIT 20
这是此代码的结果:
- id
- 13
- 17
- 16
- 15
- 7
- 6
- 5
- 2
- 3
- 4
- 1
奇怪的是,我需要先出现的3行最后显示,
如何将这3行添加到列表顶部?
谢谢
你可以使用desc:
- SELECT id
- FROM prod
- ORDER BY field( id,1 ) DESC
- LIMIT 20
问题是,当您按升序执行升序操作时,MysqL会先输入NULL值.
如果你真的想要按顺序3,1的行(这个问题对这个要求很模糊),那么在字段语句中反转它们:
- SELECT id
- FROM prod
- ORDER BY field( id,1,3 ) DESC
- LIMIT 20
或者,如果你想要花哨:
- ORDER BY - field( id,1 ) DESC