
由于
1 < 3 < 77 < 123,一个简单
ORDER BY id就足够了。
但是,如果您要这样订购:
77, 3, 123, 1,则可以使用function
FIELD():
SELECt id, nameFROM mytable WHERe id IN (77, 3, 123, 1) ORDER BY FIELD(id, 77, 3, 123, 1)
FIELD返回
0时,行不匹配任何您列表中的ID,比上市的IDS返回的数字越小,即一些。这意味着,如果查询匹配的行多于列出的行,则这些行将首先显示。例如:
SELECt id, nameFROM mytable WHERe id IN (77, 3, 123, 1, 400) ORDER BY FIELD(id, 77, 3, 123, 1)
在此示例中,具有ID的
400行将首先显示。如果您希望这些行显示在最后,只需反转ID列表并添加
DESC:
SELECt id, nameFROM mytable WHERe id IN (77, 3, 123, 1, 400) ORDER BY FIELD(id, 1, 123, 3, 77) DESC
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)