MySQL中的多列REGEX搜索

时间:2013-12-11 18:45:29

标签: mysql regex

我正在尝试使用正则表达式在我的Db中搜索多个列。它有效但使用了许多和/或法规。我想知道是否可以使用这样的东西;

SELECT * FROM table REGEXP 'regex' IN (col1, col2, col3,.....)

这不起作用,它是对语法的猜测,因为我在网上搜索找不到类似的东西。这是一个愚蠢的想法还是我错过了一些非常简单的东西?

2 个答案:

答案 0 :(得分:5)

如果您想regexp在多列中搜索值,则可以执行以下操作:

SELECT * FROM table where CONCAT(col1, col2, col3) REGEXP 'search-pattern';

答案 1 :(得分:2)

MySQL REGEX比较的语法是

expr REGEXP pattern_string

您不能将其与IN一起使用。你必须这样做:

SELECT * FROM `table` WHERE
col1 REGEXP 'regex'
OR col2 REGEXP 'regex'
OR col3 REGEXP 'regex'

您也可以使用RLIKE - 它们是同义词。