gpt4 book ai didi

mysql - REGEXP、MySQL 出现不需要的结果

转载 作者:行者123 更新时间:2023-11-29 18:14:11 25 4
gpt4 key购买 nike

我不擅长使用 REGEX,有人可以帮我优化 MySQL 查询吗?

SELECT activity
FROM activity
WHERE (LOWER( activity_name ) REGEXP '>mit|mit,|edited mit')
ORDER BY created_date DESC

当我将 '>mit|mit,|edited mit' 替换为 'mit|mit,|edited mit' 时,它的工作速度非常快,但它显示了额外的记录哪些是不需要的。我什至尝试了 '/[>]/mit|mit,|edited mit',不幸的是,我得到了错误的结果。

谢谢

最佳答案

第二个正则表达式中速度爆发的原因可能是第一个测试已缓存了内容。您是否尝试了这两个正则表达式两次?

这应该好一点:

WHERE activity_name LIKE '%mit%'
AND LOWER( activity_name ) REGEXP '>mit|mit,|edited mit'

LIKEREGEXP 更快,但功能却不那么强大。因此,LIKE 将过滤掉大部分行,然后 REGEXP 将完成过滤。

另一个轻微的加速:如果 activity_name 具有 ..._ci 排序规则,则不需要 LOWER()

更快的方法是拥有一个 FULLTEXT 索引并执行

WHERE MATCH(activity_name) AGAINST('+mit' IN BOOLEAN MODE)
AND REGEXP '>mit|mit,|edited mit'

关于mysql - REGEXP、MySQL 出现不需要的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167605/

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