根据一个MYSQL查询在WHERE子句中的匹配数(由多个OR运算符分隔),是否可以对其结果进行排序(DESC)?
我要对以下查询执行此操作:

SELECT column_1, column_2, column_2
FROM tbl_table
WHERE column_1 LIKE '%$string1%'
OR column_2 LIKE '%$string2%'
OR column_3 LIKE '%$string3%'
ORDER BY ... "

最佳答案

可以使用SUM()并按如下方式分组:
选择列1,列2,列3,
求和(如果(列1类似于“%$string1%”,1,0))为S1,
求和(如果(第2列如“%$string2%”,1,0))为S2,
求和(IF(第3列,如“%$string3%”,1,0))为S3
从tbl_表
其中列1类似“%$string1%”
或列“%$string2%”
或列“%$string3%”
按列1、列2、列3分组
按S1 DESC、S2 DESC、S3 DESC排序

关于php - Mysql:根据WHERE子句中的匹配数对结果进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31924165/

10-13 02:28