2010-10-17 19 views
11

Mam 2 kolumny w tabeli mysql: a i b. a jest zawsze wartością ciągu, a b jest czasami wartością łańcuchową, a czasami jest zerową.Wybierz wartość kolumny, jeśli nie null else, użyj innej wartości kolumny

Jak skonstruować mysql WYBIERZ, aby b zostało wykonane, jeśli nie jest zerowe i byłoby inaczej.

próbowałem zarobić trochę magii z concat i jeśli ... potem bez powodzenia ...

AKTUALIZACJA - przedłużyć moje pytanie, czy istnieje funkcja, która będzie działać jak IFNULL ale będzie działać za nieważną i puste wartości?

Odpowiedz

15

Użyj IFNULL(b, a).

Jeśli wyrażenie1 nie ma wartości NULL, funkcja IFNULL() zwraca wyrażenie1; w przeciwnym wypadku zwraca wyrażenie2.

To jest funkcja specyficzna dla MySQL. Możesz również użyć COALESCE w ten sam sposób. To zadziała w większej liczbie baz danych, ale ma nieco gorszą wydajność w MySQL niż IFNULL.

+0

Dziękuję. Tak prosty :-( – Jerry2

+0

Niestety nie znalazłem tej funkcji mysqlf. – Jerry2

2
IF(expr1,expr2,expr3) 

Jeśli wyr1 jest prawdą (wyr1 <> 0 wyr1 <> NULL), a następnie (IF) zwraca wyr2; w przeciwnym razie zwraca wyrażenie 3.

Powiązane problemy