Diferența dintre NULL și valoarea goală în Mysql (Programare, Mysql, Sql)

Himanshu a intrebat.
a intrebat.

Trebuie să verific o valoare a unei anumite coloane numită RESULT este goală sau nu.

Când verific cu if RESULT IS NULL, interogarea a eșuat, dar când am verificat RESULT='', a funcționat.

Care este diferența dintre cele două.

vă rog să explicați.

"UPDATE RLS_TP_2012_03 a, RLS_TP_2012_03 b SET a.COMMENT=b.COMMENT where b.TCODE='T1199' and  a.GROUPNAME='xyz' and a.HLABNO=b.HLABNO and a.RESULT =''; ";   
"UPDATE RLS_TP_2012_03 a, RLS_TP_2012_03 b SET a.COMMENT=b.COMMENT where b.TCODE='T1199' and  a.GROUPNAME='xyz' and a.HLABNO=b.HLABNO and a.RESULT is NULL; "

Comentarii

  • NULL este NULL, blank este blank….Period. –  > Por Mitch Wheat.
  • posibil duplicat al MySQL, mai bine să introduceți NULL sau șir de caractere gol? –  > Por Sadikhasan.
  • NULL înseamnă că nu există nicio valoare. Blank înseamnă o valoare care este goală –  > Por Ed Heal.
4 răspunsuri
Ricky
  1. NULL este o absență a unei valori. Un șir gol este o valoare, dar este doar gol. NULL este special pentru o bază de date.

  2. NULL nu are limite, poate fi folosit pentru string, integer, date, etc. într-o bază de date.

  3. NULL nu are alocată nicio memorie, aplicația string cu NULL este doar un pointer care nu indică nicăieri în memorie. cu toate acestea, Empty ESTE alocat unei locații de memorie, deși valoarea stocată în memorie este "".

Comentarii

  • Înseamnă că NULL, din punct de vedere tehnic, utilizează mai puțin spațiu/memorie, fiind astfel mai bun pentru performanță? De exemplu, dacă ați avea nvarchar(max) cu o valoare NULL față de un șir de caractere gol? –  > Por Aki.
paxdiablo

În logica celor trei valori, NULL ar trebui să fie utilizat pentru a reprezenta „necunoscut” sau „nu se aplică” O coloană goală ar trebui să reprezinte „cunoscut, dar gol”.

Unele produse DBMS nu respectă întotdeauna această convenție, dar eu le consider deficitare. Da, știi cine ești, Oracle 🙂

În plus, în timp ce NULL poate fi pus în orice tip de coloană (ignorând not null clauzele deocamdată), nu puteți introduce o valoare „goală” într-un câmp fără caractere (cum ar fi integer).

Ron Hiner

Adăugând la @ricky, NULL nu poate fi niciodată egal cu NULL, dar un șir gol este întotdeauna egal cu un șir gol. Aceasta este o diferență uriașă atunci când încercați să potriviți înregistrări.

Sameer

NULL în sistemele de baze de date – Nicio valoare stabilită pentru câmp. Un vid

NULL (caracter) – Un spațiu gol, un caracter ASCII/Unicode fără reprezentare grafică. Dar este prezent în pagina de cod ca o constantă de caracter „” cu o valoare de caracter 0 sau 000.

Tags:,