在WHERE子句中组合两个字符串记录

时间:2012-04-21 15:39:26

标签: php mysql database

我有两列名称姓氏。我想创建一个搜索查询,如果用户写下姓名,姓氏或,将会找到该人。

目前我有

    SELECT name, surname, id FROM users WHERE 
    (name LIKE '%".$term."%' || surname LIKE
    '%".$term."%')  AND position='0' LIMIT 5

假设我有一位用户John Lemon。如果我写 John 或我写 Lemon ,查询将找到他。 但如果我写下 John Lemon ,它就什么也找不到。

是否可以使用类似于的语法:

 SELECT name, surname, id FROM users WHERE (
  name+' '+surname LIKE
 '%".$term."%')  AND position='0' LIMIT 5

3 个答案:

答案 0 :(得分:5)

这样的东西?

SELECT name, surname, id FROM users WHERE
    name LIKE '%".$term."%'
    OR surname LIKE '%".$term."%'
    OR CONCAT(name, ' ', surname) LIKE '%".$term."%'

答案 1 :(得分:2)

使用此查询:

SELECT name, surname, id FROM users WHERE
CONCAT(name, ' ', surname) LIKE '%".$term."%'

答案 2 :(得分:0)

我相信你想要的是MySQL' concat

WHERE CONCAT(NAME,' ',SURNAME) LIKE '%".$term."%'