搜索给定名称的人员表

时间:2011-04-08 08:03:13

标签: mysql

我在yu db中有一个person表,我分别存储了firstname和lastname。如果名字是“John”并且姓氏是“Doe”并且我搜索“John D”,我怎么能搜索?

3 个答案:

答案 0 :(得分:3)

select * from table where concat_ws(' ',name,surname) like 'John D%'

答案 1 :(得分:1)

SELECT * 
FROM table 
WHERE LOWER(CONCAT(lastname, ' ', firstname)) LIKE 'john d%'
   OR LOWER(CONCAT(firstname, ' ', lastname)) LIKE 'john d%'

您还应确保将所有字符串转换为小写字母或进行不区分大小写的搜索。


编辑:如果firstname或lastname可以为null,那么最好使用CONCAT_WS而不是CONCAT。

答案 2 :(得分:0)

将“John D”拆分为“John”和“D”,然后使用如下查询:

SELECT * FROM person WHERE firstname =“John”AND lastname LIKE“D%”