2010-12-20 10 views
24

Wenn ich concat($name, $surname), gibt es eine Möglichkeit, einen Platz zwischen dermit meinem sql nicht php so, wenn ich das Ergebnis bekomme es formatiert ein wenig sauberer?mysql concat Funktion

vielen dank

Antwort

56

Sie können String-Literale zusammen mit Ihren Feldern verketten, sodass Sie ein Leerzeichen in einer Zeichenfolge zwischen den Feldern, die Sie verketten, hinzufügen können.

verwenden:

CONCAT(name, " ", surname) 

Diese Funktionalität dokumentiert ist ganz klar auf der MySQL manual page for the CONCAT() function.

Es gibt auch die CONCAT_WS function, die es Ihnen ermöglicht, ein Trennzeichen anzugeben, das zwischen jedem anderen Feld verwendet wird, das an die Funktion übergeben wird. Wenn Sie mehr als zwei Felder auf dieselbe Weise verketten, wird diese Funktion möglicherweise als sauberer angesehen, als das Trennzeichen zwischen den einzelnen Feldern zu wiederholen.

Zum Beispiel, wenn Sie einen zweiten Vornamen Feld hinzufügen möchten, können Sie diese Funktion verwenden, um die Trennzeichen nur einmal angeben:

CONCAT_WS(" ", first_name, middle_name, surname) 
16

Fügen Sie einfach einen Platz in dort hinzu.

SELECT CONCAT(name,' ',surname) AS full_name FROM table; 

EDIT oops, schlechte Rechtschreibung dort ...; p

+0

+1 : Beat mich um 14 Sekunden –

+0

@OMGPonies: Ich gehe mit Glück auf diesem. ;-) –

+0

+1. Nur um sicher zu sein, würde ich dies erweitern auf: 'CONCAT (COALESCE (Name, ''), '', COALESCE (Nachname, ''))' –

0

Verwendung CONCAT(name, ' ', surname).

4

verwenden, keine Versionsabhängigkeiten

concat(name,Char(32),venue) 
0

nach versuche ich dies zu tun

concat(name, _utf8 ' ' ,name1) 
+0

Beantwortet das die Frage? – Rico

+0

ja statt der Raumnutzung _utf8 '' – Shivling

0

Hey ich hatte das gleiche Problem und das ist, was ich verwendet habe und es r eally hat sehr gut

CONCAT (column1,““, column2) das Problem ist, dass Sie zwischen den Doppelplätze physischen Raum hinzufügen (‚‘) auf der Tastatur die Leertaste verwenden und das ist es dann

+0

Was ist das anders als die Antworten von vor ein paar Jahren? – patricksweeney