2010-10-17 7 views
11

Ich habe 2 Spalten in MySQL-Tabelle: a und b. a ist immer String-Wert und b ist manchmal ein String-Wert und manchmal ist es null.Wählen Sie Spaltenwert, wenn nicht Null sonst verwenden Sie einen anderen Spaltenwert

Wie konstruiere ich eine mysql SELECT, so dass das b genommen würde, wenn es nicht null ist und ein würde sonst genommen werden.

Ich habe versucht, etwas Magie mit concat und wenn ... dann ohne Erfolg zu machen ...

UPDATE - meine Frage zu verlängern, gibt es eine Funktion, die wie IFNULL funktionieren würde, aber für null arbeiten würde und leere Werte?

Antwort

15

Verwenden Sie IFNULL(b, a).

Wenn ausdruck1 nicht NULL ist, gibt IFNULL() ausdruck1 zurück; Andernfalls wird expr2 zurückgegeben.

Dies ist eine MySQL-spezifische Funktion. Sie können auch COALESCE auf die gleiche Weise verwenden. Dies wird in mehr Datenbanken funktionieren, aber es hat eine etwas schlechtere Leistung in MySQL als IFNULL.

+0

Danke. So einfach :-( – Jerry2

+0

Entschuldigung, ich habe diese Funktion mysqlf nicht gefunden. – Jerry2

2
IF(expr1,expr2,expr3) 

Wenn expr1 ist TRUE (expr1 <> 0 und expr1 <> NULL) dann IF() gibt expr2; Andernfalls wird expr3 zurückgegeben.

Verwandte Themen