我正在尝试使用正则表达式在我的数据库中搜索多个列。虽然使用许多and/or语句可以实现,但我想知道是否可以使用类似于这样的东西:
SELECT * FROM table REGEXP 'regex' IN (col1, col2, col3,.....)
这样行不通,我只是根据自己的猜测写了这个语法,因为在网上找不到任何类似的信息。这是一个愚蠢的想法还是我忽略了一些非常简单的东西?
regexp
搜索,则可以执行以下操作:SELECT * FROM table where CONCAT(col1, col2, col3) REGEXP 'search-pattern';
expr REGEXP pattern_string
您不能将其与 IN
一起使用。您需要执行以下操作:
SELECT * FROM `table` WHERE
col1 REGEXP 'regex'
OR col2 REGEXP 'regex'
OR col3 REGEXP 'regex'
您也可以使用RLIKE
——它们是同义词。