查询以选择var REGEX MANY列

时间:2012-09-23 13:18:09

标签: mysql regex performance database-performance

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

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

此搜索从usernamenameemail like %abc%

中的任何一个用户获得结果

所以我尝试使用类似

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

所以解决方案是正则表达式

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

我想要像这样

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

所以答案

1 个答案:

答案 0 :(得分:1)

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

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