【发布时间】:2010-11-21 22:37:48
【问题描述】:
我正在尝试使用一个简单的已提交字段来获取 MySQL 中的记录。更准确地说,用户输入一个名字(名字或姓氏或全名),服务器应该返回匹配的行。
到目前为止,我正在做的事情是这样的:
SELECT * FROM people
WHERE
firstname LIKE '%user_submitted_data%' OR
lastname LIKE '%user_submitted_data%'
目前效果很好,但是(显然)在用户提交全名时不起作用。有没有办法在整个“WHERE 类型条件”和“HAVING 类型条件”之间添加 OR?这样我可以做类似的事情:
SELECT [some fields], CONCAT(firstname, ' ', 'lastname') as fullname
FROM people
WHERE
firstname LIKE '%user_submitted_data%' OR
lastname LIKE '%user_submitted_data%' OR
HAVING fullname LIKE '%user_submitted_data%'
我知道我可以只拆分原始字符串,但这会产生一些负面影响,因为您必须处理包含空格的名称,例如“戴高乐”之类的东西。
【问题讨论】: