如何在mysql中使用两个字段和一个值?

时间:2013-01-08 10:50:28

标签: mysql sql-like

我有这样的查询:

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

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

3 个答案:

答案 0 :(得分:2)

我认为 如果名称是值 你可以用这个

 (`firstname` like '%value%' or `lastname` like '%value%' or concat(firstname,' ', lastname) LIKE '%value%')

答案 1 :(得分:1)

OR更改为AND

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

答案 2 :(得分:0)

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

SELECT 
    * 
FROM 
    `users`
WHERE 
    (
        `firstname` LIKE '%jack%'
        AND
        `lastname` NOT LIKE '%Mr green%'
    )
    OR
    (
        `firstname` NOT LIKE '%jack%'
        AND
        `lastname` LIKE '%Mr green%' 
    )