繁体   English   中英

使用LIKE在SQL中搜索

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM