MySQL中的SQL排序

时间:2011-05-26 06:24:15

标签: mysql sql sql-order-by

我有一个MySQL select语句,想把它变成一个查询。

 select * from users where...

where子句有四个部分,需要以这种方式排序:

 1. where description = "query"

 2. where description = "%query%"

 3. where description = "q1" or description = "q2"

 4. where description = "%q1%" or description = "%q2%"

2 个答案:

答案 0 :(得分:2)

一种解决方案是UNION结果,并为每个查询添加一个假的OrderBy字段。

SELECT   1 as OrderBy, *
FROM     users
WHERE    description = "query"
UNION ALL
SELECT   2 as OrderBy, *
FROM     users
WHERE    description = "%query%"
...
ORDER BY
         OrderBy

答案 1 :(得分:0)

我认为以下内容将产生您需要的结果

select * from users 
where description like "%query%" 
  or description like "%q1%" 
  or description like "%q2%"