2012-06-21 10 views
6

Wie der Titel vermuten lässt, habe ich mich gefragt, wie man concat zwei Felder in where clause in mysql. Dies ist ein Beispiel dafür, was ich versuche zu erreichen:MySQL - CONCAT zwei Felder und verwenden sie in WHERE-Klausel

SELECT CONCAT_WS(' ', first_name, last_name) AS name FROM `users` 
WHERE name LIKE "%John Doe%" 

Der Punkt ist, dass first_name und last_name sind separate Felder, und ich mag, dass meine PHP Anwendung ermöglichen, für eine volle Namen dieser Person zu suchen.

Irgendwelche Tipps?

Prost!

+0

Concat mit '%' vor und nach? –

Antwort

11

Versuchen Sie dieses ::

SELECT CONCAT_WS(' ', first_name, last_name) AS name FROM `users` 
WHERE CONCAT_WS(' ', first_name, last_name) LIKE "%John Doe%" 
+1

Danke, das hat den Trick gemacht. Ich habe tatsächlich eine Möglichkeit erwartet, das aliased-Feld in 'where clause' zu ​​verwenden, weiß nicht, ob es möglich ist. – yoda

+0

Sie sind willkommen .. –

0

die Benutzer holen als Ansicht dann außerhalb Auswahlabfrage Abfrage

select name from (select first_name||last_name FROM `users` 
    WHERE frst_name LIKE "%John%" or last name like "%doe%") where name like '%John Doe%'