准确地搜索3列名称

时间:2018-02-05 06:30:35

标签: mysql select sql-like

这是我的问题:

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

样本表:

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

我想获得上面数据行的结果。但是当我运行查询时,它不匹配。 我知道我缺少一些代码来准确匹配数据。我也想满足用户的需求。即使他们输入像#34;英语约翰"或者" John Dee"。

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

2 个答案:

答案 0 :(得分:0)

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

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

关于输入格式,只需分别征集三个名称。

答案 1 :(得分: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%') ;