MySQL – zamjena praznog stringa s null
Problem:
Vezano uz http://systasis.biz/blog/?p=37 i napomenu o funkciji COALESCE postoji mali problem. Naime, ako u bazi imamo prazan string (”) umjesto null stvar neće raditi jer, kao što rekosmo:
COALESCE traži prvu pojavu vrijednosti koja nije null
A prazan string nije null. Dakle, prvo bi trebalo zamijenit prazan string sa null da bi COALESCE radio kako valja.
Rješenje:
To možemo na sljedeći način:
IF(LENGTH(Prezime)=0,NULL,Prezime)
Dakle, ako je dužina stringa Prezime 0 (nula) tada to znači da je u pitanju prazan string i tada se vrijednost polja Prezime zamijenjuje sa NULL
U toj situaciji COALESCE bi izgledao ovako:
SELECT COALESCE(IF(LENGTH(Prezime)=0,NULL,Prezime),Ime) FROM Persons
Dakle, selektiraj Prezime iz tablice Persons, a ako je Prezime NULL onda selektiraj Ime umjesto prezimena