检查mySQL中的多列中是否找到多字符串

时间:2015-03-06 08:17:18

标签: mysql

我需要在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%';

2 个答案:

答案 0 :(得分:0)

您可以尝试:

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

虽然这不是like解决方案。

答案 1 :(得分:0)

你可以保持简单并且做到:

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

或:

select * from myTable WHERE name LIKE '%stack%' AND
                            name LIKE '%over%' AND
                            name LIKE '%flow%';

这看起来不像Young的REGEXP那么好,但它没有REGEXP给出的意外行为,因为用户输入可以是任何东西。使用REGEXP,您真的需要知道自己在做什么。