$qry="select * from table where category='car' or title='car' or description='car'";但我希望输出先按类别列出行,然后按标题列出行,然后按描述列出行。
*编辑:实际上我使用的是一个类似的操作符来搜索**
示例:
id category title description
1 car
2 car
3 car
4 car
5 car
6 car除了使用工会之外,还有别的办法吗?
提前谢谢。
发布于 2016-01-11 11:50:40
您可以使用具有正确键的ORDER BY来完成此操作。在MySQL中,您可以:
ORDER BY (category = 'car') DESC,
(title = 'car') DESC,
(description = 'car') DESCMySQL将布尔表达式视为数值上下文中的整数,0表示false,1表示true。所以DESC把真正的版本放在第一位。
如果您愿意,还可以简化WHERE子句:
WHERE 'car' IN (category, title, description)发布于 2016-01-11 11:59:18
您可以使用以下语句获得此结果:
SELECT * FROM mytable
WHERE (category='car' OR title='car' OR description='car')
ORDER BY category = 'car' DESC,
title = 'car' DESC,
description = 'car' DESC它是如何工作的?
它将按照查询中提到的那样,通过DESC通过sequentially设置数据顺序。你可以随意改变顺序。
发布于 2016-01-11 11:54:24
您可以对多个列使用ORDER BY,如:
SELECT * FROM tablename ORDER BY category DESC, title DESC, description DESC我试过了,成功了。

https://stackoverflow.com/questions/34720813
复制相似问题