gpt4 book ai didi

MySQL |正则表达式 VS 喜欢

转载 作者:IT老高 更新时间:2023-10-28 23:47:52 27 4
gpt4 key购买 nike

我的数据库中有一个表 CANDIDATE,它在 MySQL 5.5 下运行,我试图从 RAM 中包含名字的表中获取行,所以我可以在两个查询下运行,但我想知道我们是哪个查询应该在优化方面长期使用。

SELECT * FROM CANDIDATE c WHERE firstname REGEXP 'ram';
SELECT * FROM CANDIDATE c WHERE firstname LIKE'%ram%';

最佳答案

MySQL 中的 LIKE 与 REGEXP

  • 单一条件:LIKE 更快
  • 多种条件:REGEXP 更快

示例

一个真实的例子可能是:查找所有包含 CRLF、LF 或 CR 的转义回车的行。

单一条件

SELECT * FROM comments WHERE text LIKE '%\\\\n%'; 🚀 Faster
SELECT * FROM comments WHERE text REGEXP '\\\\n'; 🐢 Slower

多个条件

SELECT * FROM comments
WHERE text LIKE '%\\\\r\\\n%'
OR text LIKE '%\\\\n%'
OR text LIKE '%\\\\r%'; 🐢 Slower

SELECT * FROM comments
WHERE text REGEXP '((\\\\r\\\\n)|(\\\\(n|r)))'; 🚀 Faster

结论

LIKE 用于单个条件查询,REGEXP 用于多个条件查询。

关于MySQL |正则表达式 VS 喜欢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16646686/

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