ORDER BY部分字符串

时间:2014-04-16 10:44:23

标签: php mysql sql sql-order-by

我有一个列名unique,我试图打印随机排序的resutl,首先是以lead_开头的所有行,然后是所有其余行。

例如,如果我有这样的行:

abc
lead_ass
dsff
dds
lead_fdg
fds
lead_hhf

我需要先打印lead_ass,lead_fdg,lead_nhf随机排序,然后再打印所有其他的,也是随机排序的。

有任何帮助吗? THX!

2 个答案:

答案 0 :(得分:4)

您可以这样做:

order by (col like 'lead_%') desc,
         rand()

表达式(col like 'lead_%')返回true(视为1)或false(视为0),因此desc将匹配放在第一位。 rand()只是因为你说你想要随机订购的东西。这将随机命令两个组。

答案 1 :(得分:3)

您可以使用CASELEFT功能

ORDER BY CASE 
         WHEN LEFT(col,5) ='lead_' 
         THEN 1 ELSE 2
         END
相关问题