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


Leave a Reply

You must be logged in to post a comment.