我正在构建一个这样的查询:
SELECT * FROM mytable
WHERE field like '%a%'
OR field like '%b%'
OR field like '%c'我想添加一个ORDER BY子句,它按照找到的匹配项的数量进行排序--在结果集中增加一些额外的列,如果在字段中找到a、b或c,这些列就会递增,然后按这个数字排序。
在不创建某种临时表的情况下,这是可能的吗?
发布于 2011-04-03 05:31:55
如果该表很大,但查询不是很大,则可能需要查看全文索引。
SELECT *
FROM mytable
WHERE field like '%a%'
OR field like '%b%'
OR field like '%c'
ORDER BY CASE
WHEN field like '%a%' THEN 1
ELSE 0
END + CASE
WHEN field like '%b%' THEN 1
ELSE 0
END + CASE
WHEN field like '%c%' THEN 1
ELSE 0
END https://stackoverflow.com/questions/5525822
复制相似问题