我正在使用此查询:
SELECT * FROM `challenges` WHERE id IN (#, #, #, #)
Run Code Online (Sandbox Code Playgroud)
其中#是与单行关联的4个ID号.这很好用,因为它允许我在一个查询中从表中提取4行,但是它有一个奇怪的问题.我不知道它为什么会这样,但结果中行的顺序与我在查询中的顺序不一样.例如:
SELECT * FROM `challenges` WHERE id IN (108, 208, 134, 142)
Run Code Online (Sandbox Code Playgroud)
我希望他们按照这个顺序出来,但他们却这样出来:
108,134,142,208
我注意到的唯一事情是challenge表中的每一行都有一个名为"first_recorded"的字段,来自该查询的行的顺序按该字段按升序排序.有没有办法强制查询按照订购ID的顺序排序结果?
您需要按字段排序
SELECT * FROM `challenges` WHERE id IN (108, 208, 134, 142) ORDER BY FIELD(id, 108,208,134,142)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |