Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] 3cia kolumna gdy 2 inne nie sa puste
Forum PHP.pl > Forum > Bazy danych > MySQL
jol.us_
Witam,


W bazie danych mam kolumny: A, B, C. Kolumna C zawsze ma ustawiona wartosc, kolumny A i B są opcjonalne.
Teraz wartość zwracaną z kolumny C uzależniam od tego czy kolumna A i B maja ustawiona wartosc. Jezeli A i B sa puste to zwracam "-" a jesli obydwie maja wartosc to zwaracam wartosc kolumny C.

Pseudokod:
if (( A != '') AND (B != '')) THEN C = C ELSE C = '-';

Nie mogę nic wygooglowac, może źle szukam.
Ciąglę gdzies trafiam na COALESCE, ale to nie zupelnie nie to o co mi chodzi.


trueblue
IF (( A != '') AND (B != ''),C, '-') AS C
Mi się udało wygooglować: http://dev.mysql.com/doc/refman/5.7/en/con...tml#function_if

Jeszcze jest kwestia co uważasz za puste. Jesli NULL lub pusty string, to wtedy trzeba zastosować właśnie COALESCE.
jol.us_
Przez puste uwazam pusty string.

COALESCE jesli dobrze zrozumialem to dziala tak ze zwraca pierwsza wartosc ktora nie jest NULL.
Czyli np. COALESCE( '', 'string1', 'string2') zwroci mi string1, co zdecydowanie nie realizuje tego co chce.


Tak na IF:
IF(A<>'' AND B<>'', C, '-') as C
Bedzie ok?
trueblue
W przykładzie, który podałeś zwróci ''.
Jeśli nie interesują Cię wartości nullowe dla A i B, to rozwiązanie masz wyżej.
jol.us_
Tak masz racje zwroci ''.... MIalem zamiast '' wpisac NULL, wtedy by zwrocil string1
IF zadziałał. Dziękuję, nie wiem jak tego mogłem nie widzieć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.