gpt4 book ai didi

mysql - 按正则表达式匹配的数量排序 mysql 结果

转载 作者:行者123 更新时间:2023-11-29 03:36:47 24 4
gpt4 key购买 nike

我有以下查询。它会选择所有标题包含绿色、蓝色或红色字样的帖子。

SELECT id, title FROM post WHERE title REGEXP '(green|blue|red)'

我想以这样一种方式对结果进行排序,即最匹配(所有三个词)的标题以及最相关的标题列在第一位。这在这种情况下是否可行?如果可行,我将如何处理?

谢谢

最佳答案

您必须拆分正则表达式。针对不同的条件或不同的查询:

SELECT COUNT(results.username) as count, results.* FROM (
SELECT * FROM `post` WHERE `title` LIKE "%blue%"
UNION SELECT * FROM `post` WHERE `title` LIKE "%red%"
UNION SELECT * FROM `post` WHERE `title` LIKE "%green%"
) as results GROUP BY results.title ORDER BY count DESC;

注意:我使用 LIKE 而不是 REGEXP,因为根据您的示例,当您拆分条件时,您将不再需要它。 LIKE 比正则表达式快一点,但如果你的模式更复杂,那么你总是可以将它替换回来。

关于mysql - 按正则表达式匹配的数量排序 mysql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com