一些技巧
ORDER BY FIND_IN_SET(card_type, "MASTER-CARD,VISA,DISCOVER") -- sort 'MASTER-CARD' first.
ORDER BY x IS NULL, x -- order by `x`, but put `NULLs` last.
定制订购
SELECT * FROM some_table WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72);
以指定的 id 顺序返回结果。
ID |
… |
---|---|
118 |
… |
17 |
… |
113 |
… |
23 |
… |
72 |
… |
如果 id 已经排序并且你只需要检索行,则非常有用。