2013-01-08 58 views
-1

我有這樣的查詢:如何在mysql中使用兩個字段和一個值?

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

但這種代碼是不適合的時候,我想找到的人,她的名字是jack和她的姓是Mr green或名字是傑克先生和姓氏是綠色的。
換句話說,我有一個文本框,用戶使用名字和姓氏填充這個文本框,在它們之間有一個空格,我想要在用戶表中搜索並找到用搜索者搜索的用戶(搜索者是誰填充文本框)。
有兩種方法可以使用like嗎?

+1

爲什麼不適合? –

+0

,因爲我可以在一個查詢中找到她的名字是'傑克先生綠色'的人。 – aya

+0

是不是你想要的?你能給出測試數據並得出你想要達到的結果嗎? –

回答

2

我覺得 如果名字是價值 你可以使用這個

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

'concat'唯一的方法是有區別的,如果第一個名字是'jack mr'並且姓是'green'。 – h2ooooooo

1

變化ORAND

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

這很難告訴你問什麼,但我認爲,你想要的是有名字或姓氏匹配(但不能同時在同一時間)。在這種情況下:

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