【发布时间】:2018-05-03 15:07:45
【问题描述】:
我正在尝试选择姓名+姓氏以“John D”开头的所有用户的姓名和姓氏,我的意思是它可以选择“John Doe”、“John Deniro”、“John Dalas”。
但是这个选择不起作用:
SELECT name,lastname FROM users WHERE name+" "+lastname LIKE 'john D%';
那么,我该怎么做呢?
【问题讨论】:
我正在尝试选择姓名+姓氏以“John D”开头的所有用户的姓名和姓氏,我的意思是它可以选择“John Doe”、“John Deniro”、“John Dalas”。
但是这个选择不起作用:
SELECT name,lastname FROM users WHERE name+" "+lastname LIKE 'john D%';
那么,我该怎么做呢?
【问题讨论】:
你可以使用CONCAT
SELECT name,lastname FROM users
WHERE CONCAT(name , ' ', lastname) LIKE 'John D%';
或(更好的解决方案,因为条件将是SARGable):
SELECT name,lastname FROM users
WHERE name = 'John'
and lastname LIKE 'D%'
【讨论】:
您应该拆分参数以使其正常工作。
SELECT `name`, `lastname`
FROM `users`
WHERE `name` LIKE "John%" AND `lastname` LIKE "D%"
【讨论】:
或者,如果性能是模糊的重要......
SELECT name
, lastname
FROM users
WHERE name = 'John'
AND lastname LIKE 'D%';
【讨论】: