我需要在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%';
答案 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,您真的需要知道自己在做什么。