这是我的查询:
SELECT *
FROM people
WHERE CONCAT(nameF, ' ', nameM, ' ', nameF) like %Johny English%;
样品表:
nameF nameM nameL
-------+-------+------
Johny Deep English
我想获得上面数据行的结果。但是当我运行查询时,它不匹配。我知道我缺少一些代码来准确匹配数据。此外,我想满足用户甚至他们的输入,如“英国约翰”或“约翰迪”。
请帮我解决这个问题。任何帮助都非常感谢。
我没有看到连接三个名称字段然后尝试进行比较的重点。相反,我建议您单独检查名称字段:
SELECT *
FROM people
WHERE nameF = 'Johny' AND nameL = 'English';
关于输入格式,请分别征求三个名称。
你应该这样试试
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%') ;