Wie funktioniert MySQL CONCAT IFNULL arbeiten mit mehr als zwei Werten?

Muss ich CONCAT zwei Felder, wenn Sie beide existieren, und fügen Sie die Klammern um das zweite Feld. Ansonsten brauche ich nur die Liste das erste Feld.

Hier ist die einfache version:

SELECT id, CONCAT(name,' (',nickname,')') as name FROM user;

Solange name und nickname gleichzeitig vorhanden sind, sollten Sie die Ergebnisse erhalten möchten:

1 | Adam (Alpha Dog)
2 | Bob (Bobby)
3 | Charles (Charlie)

Aber wenn es kein Spitzname, den Sie nur überspringt, die ganze Sache als null. Zum Beispiel: id 4 name Doug, nickname null ergibt:

4 | null

Was ich sehen möchte, ist es auf der Liste nur der name... so wie hier:

4 | Doug

Also schaute ich mir die CONCAT IFNULL. Aber ich habe eine harte Zeit, es richtig zu machen. Können Sie mir helfen?

Hier sind ein paar Beispiele von Dingen, die ich versucht habe:

SELECT id, CONCAT(IFNULL(name, ' (', nickname, ')', name) as name FROM user;
SELECT id, CONCAT(name, IFNULL(' (', nickname, ')')) as name FROM user;
IFNULL( CONCAT( '(', nickname, ')' ), " )
Etwas zu zeigen, das warf mich aus zunächst. Als Spitzname ist null dann CONCAT('(',nickname,')') gibt auch null zurück.

InformationsquelleAutor Ryan | 2012-12-13

Schreibe einen Kommentar