我有这个问题:
SELECT * FROM table WHERE key LIKE '1,2,3,%' OR key LIKE '1,2,%' OR key LIKE '1,%'
是否可以根据首先匹配的条件对从此查询返回的记录进行排序。我希望首先获得与key LIKE '1,2,3,%'
匹配的所有记录,然后是key LIKE '1,2,%'
以及之后的其他记录。
例如,如果我有这些记录:
key: "1,2,3,4"
key: "1,2,5"
key: "1,4"
key: "1,2,5,6"
key: "1,3"
key: "1,2,3,4,7"
key: "1,2,4"
我希望他们这样排序:
key: "1,2,3,4"
key: "1,2,3,4,7"
key: "1,2,4"
key: "1,2,5"
key: "1,2,5,6"
key: "1,3"
key: "1,4"
有可能吗?
答案 0 :(得分:3)
使用MATCH ... AGAINST
并按排名排序。它完全符合您的要求。
答案 1 :(得分:2)
.... ORDER BY CASE
WHEN key LIKE '1,2,3,%' THEN 1
WHEN key LIKE '1,2,%' THEN 2
ELSE 3
END
答案 2 :(得分:1)
使用“UNION”可以完成这项工作吗?
SELECT * FROM table WHERE key LIKE'1,2,3,%' 联盟 SELECT * FROM表WHERE键LIKE'1,2,%' 联盟 SELECT * FROM表WHERE键LIKE键LIKE'1,%'