繁体   English   中英

根据匹配的条件对SQL记录进行排序

[英]Sort SQL records based on matched conditions

我有这个问题:

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"

有可能吗?

使用MATCH ... AGAINST并按排名排序。 它完全符合你的要求。

.... ORDER BY CASE
WHEN key LIKE '1,2,3,%' THEN 1
WHEN key LIKE '1,2,%' THEN 2
ELSE 3
END

使用“UNION”可以完成这项工作吗?

SELECT * FROM table WHERE key LIKE'1,2,3,%'UNION SELECT * FROM table WHERE key LIKE'1,2,%'UNION SELECT * FROM table WHERE key LIKE key LIKE'1,%'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM