检查mySQL中的多个列之一中是否存在多个字符串

检查mySQL中的多个列之一中是否存在多个字符串,mysql,Mysql,我需要在mysql的多列中找到多个字符串 select * from myTable WHERE name LIKE '%stack%'; 这显然有效。但是,我需要做的是,如果同时选中名称和姓氏,则多字符串将执行以下操作: select * from myTable WHERE (name or surname) LIKE '%stack%','%over%','%flow%'; 如果上述类似代码不存在,则该工作。请告诉我如何使用like语句在mySQL中检查一列中的多个字符串: selec

我需要在mysql的多列中找到多个字符串

select * from myTable WHERE name LIKE '%stack%';
这显然有效。但是,我需要做的是,如果同时选中名称和姓氏,则多字符串将执行以下操作:

select * from myTable WHERE (name or surname) LIKE '%stack%','%over%','%flow%';
如果上述类似代码不存在,则该工作。请告诉我如何使用like语句在mySQL中检查一列中的多个字符串:

select * from myTable WHERE name LIKE '%stack%','%over%','%flow%';
您可以尝试:

select * from myTable WHERE name REGEXP 'stack|over|flow';

虽然这不是一个类似的解决方案。

您可以保持它的简单性,并执行以下操作:

select * from myTable WHERE name LIKE '%stack%' OR 
                            name LIKE '%over%' OR
                            name LIKE '%flow%';
或:


这看起来不像Young中的REGEXP那么好,但它没有REGEXP可以提供的意外行为,即用户输入可以是任何内容。使用REGEXP,您确实需要知道自己在做什么。

为什么不在mysql中签出全文搜索,这可能是您需要的。
select * from myTable WHERE name LIKE '%stack%' AND
                            name LIKE '%over%' AND
                            name LIKE '%flow%';