[英]Search in SQL with LIKE
我在使用LIKE搜索SQL时遇到问题。 我希望SQL LIKE搜索所有可以混合的字符。 让我演示给你看。 数据库用户:
----------------------------------------------
id fname lname phoone email
----------------------------------------------
1 John Smit 51451 john@gmail.com
----------------------------------------------
2 Maria Doul 878988 maria@gmail.com
----------------------------------------------
3 Bob Coul 879333 bob@gmail.com
----------------------------------------------
SQL是:
SELECT * FROM users WHERE CONCAT(fname, lname, phone, email) LIKE
'%Smi%514%'
上面的SQL运行正常。 但是我也想像这样严谨地搜索:
SELECT * FROM users WHERE CONCAT(fname, lname, phone, email) LIKE
'%Smi%514%John%'
上面的SQL返回NULL,因为在CONCATENATION中,“ John”在“ Smi”之前。 有什么方法可以使SQL查询以两种方式进行搜索。
每个搜索词都需要一个单独的like
,例如:
SELECT *
FROM users
WHERE CONCAT(fname, lname, phone, email) LIKE '%Smi%'
AND CONCAT(fname, lname, phone, email) LIKE '%514%'
AND CONCAT(fname, lname, phone, email) LIKE '%John%'
还考虑
FULLTEXT(fname, lname, phone, email)
和...一起
MATCH(fname, lname, phone, email) AGAINST('+John +Smith +514' IN BOOLEAN MODE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.