mysql:按列名排序结果

Sug*_*san 5 php mysql sql

$qry="select * from table where category='car' or title='car' or description='car'";
Run Code Online (Sandbox Code Playgroud)

但我希望输出首先按类别列出行,然后是标题,然后是描述.

****编辑:实际上我正在使用like运算符来搜索**

例:

 id category title description   
  1    car 
  2    car
  3            car
  4            car
  5            car
  6                    car
Run Code Online (Sandbox Code Playgroud)

除了使用联盟之外还有什么方法吗?
提前致谢.

Gor*_*off 9

您可以使用ORDER BY正确的键进行此操作.在MySQL中,您可以:

ORDER BY (category = 'car') DESC,
         (title = 'car') DESC,
         (description = 'car') DESC
Run Code Online (Sandbox Code Playgroud)

MySQL将布尔表达式视为数字上下文中的整数,0表示false,1表示true.所以DESC首先是真正的版本.

WHERE如果您愿意,也可以简化该条款:

WHERE 'car' IN (category, title, description)
Run Code Online (Sandbox Code Playgroud)