【问题标题】:Query to select var REGEX MANY columns查询以选择 var REGEX MANY 列
【发布时间】:2012-09-23 13:18:08
【问题描述】:

这是我想要优化此查询的内容

SELECT * 
FROM users 
where `username` like "%abc%" 
   or `name`     like "%abc%" 
   or `email`    like "%abc%"

此搜索从具有usernamenameemaillike %abc% 的用户那里得到结果

所以我尝试使用 in with like 但是

我正在寻找 mysql Like in,我找到了这个答案 stackoverflow :Mysql like in

所以解决方案是 regex

但我想让正则表达式不使用 OR

我想成为这样的人

SELECT * from users where abc REGEXP 'username|name|email';

所以答案

【问题讨论】:

    标签: mysql regex performance database-performance


    【解决方案1】:

    你的意思是这样的吗? >>

    SELECT * from users where CONCAT(username, ',', name, ',', email) REGEXP 'abc'
    

    【讨论】:

    • 你的查询对我来说非常好,同样的结果也适用于 LIKE 语句 正则表达式和你的查询有什么不同
    • @MonaAbdelmajeed - 您的问题需要正则表达式解决方案,因此我在示例中使用了 REGEXP。在这种情况下,如果您使用likeREGEXP,您将获得相同的结果。但是对于更复杂的搜索/匹配模式REGEXP 是更好的选择...
    猜你喜欢
    • 2019-11-25
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2011-09-23
    • 2018-04-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多