-1

我有这样的查询:

select * from users where `firstname` like '%jack%' or `lastname` like '%Mr green%' 

但是,当我想找到她的名字jack和姓氏是Mr green或名字是杰克先生并且姓氏是绿色的人时,此代码不适合。
换句话说,我有一个文本框,用户用名字和姓氏填充这个文本框,它们之间有一个空格,我想在用户表中搜索并找到使用搜索器搜索的用户(搜索器是填充文本框的人)。
有没有办法使用like两列?

4

3 回答 3

2

我认为如果名称是值,您可以使用它

 (`firstname` like '%value%' or `lastname` like '%value%' or concat(firstname,' ', lastname) LIKE '%value%')
于 2013-01-08T11:05:27.533 回答
1

更改ORAND

select * from users
where `firstname` like '%jack%'
AND `lastname` like '%Mr green%' 
于 2013-01-08T11:01:18.117 回答
0

很难确切地说出你在问什么,但我认为你想要的是名字或姓氏匹配(但不能同时匹配)。在这种情况下:

SELECT 
    * 
FROM 
    `users`
WHERE 
    (
        `firstname` LIKE '%jack%'
        AND
        `lastname` NOT LIKE '%Mr green%'
    )
    OR
    (
        `firstname` NOT LIKE '%jack%'
        AND
        `lastname` LIKE '%Mr green%' 
    )
于 2013-01-08T11:01:24.877 回答