MySQL按列表排序

MySQL按列表排序,第1张

MySQL按列表排序

由于

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4934316.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存