如何从一个搜索输入中搜索三个不同的字段

时间:2015-11-07 21:17:52

标签: mysql sql database

这些是我的用户表中的字段,我正在使用MySQL:

name                 
lastName              
surName             

我有一个搜索输入,用户可以输入任何名称或全名,但我不知道如何为此构建查询,我很困难。

我正在使用LIKE句子的变体,但这并没有解决我的问题:

SELECT u FROM User u
            WHERE u.name LIKE %rocky moon sun% OR u.lastName LIKE %rocky moon sun%  OR u.surName LIKE %rocky moon sun% '

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在尝试匹配字段之前,您可以连接字段,试试这个

SELECT 
       u 
FROM 
      User as u
WHERE 
      u.name LIKE %rocky moon sun% 
   OR u.lastName LIKE %rocky moon sun%  
   OR u.surName LIKE %rocky moon sun%
   OR concat (u.name,' ',u.lastName) like %rocky moon sun%

答案 1 :(得分:0)

当你必须在表之间进行连接时使用表别名,我不对简单查询使用表别名

请改用此查询 例如,如果我们想要搜索Id详细信息

SELECT id FROM User WHERE name='Rocky moon sun' and lastName='Rocky moon son' and surname='Rock moon son';