准确地搜索3列名称

问题描述 投票:0回答:2

这是我的查询:

SELECT *
FROM people
WHERE CONCAT(nameF, ' ', nameM, ' ', nameF) like %Johny English%;

样品表:

nameF    nameM   nameL
-------+-------+------
Johny    Deep     English

我想获得上面数据行的结果。但是当我运行查询时,它不匹配。我知道我缺少一些代码来准确匹配数据。此外,我想满足用户甚至他们的输入,如“英国约翰”或“约翰迪”。

请帮我解决这个问题。任何帮助都非常感谢。

mysql select sql-like
2个回答
0
投票

我没有看到连接三个名称字段然后尝试进行比较的重点。相反,我建议您单独检查名称字段:

SELECT *
FROM people
WHERE nameF = 'Johny' AND nameL = 'English';

关于输入格式,请分别征求三个名称。


0
投票

你应该这样试试

 SELECT *
 FROM people
 WHERE (nameF like '%Johny%' or nameM like '%Johny%' or nameL like '%Johny%') 
 and where (nameF like '%English%' or nameM like '%English%' or nameL like '%English%') ;
© www.soinside.com 2019 - 2024. All rights reserved.