sql >> Database teknologi >  >> RDS >> Mysql

Forskellen mellem MySQL ER IKKE NULL og !=''

Ja, der er stor forskel på en NULL værdi og en tom/tom værdi.

Her er én ressource der beskriver forskellene.

Når myText IS NULL :

  • myText IS NOT NULL evalueres til FALSE
  • myText != '' evalueres til NULL (som i det væsentlige opfører sig på samme måde som FALSE ville du i dette specifikke tilfælde skrev)

Du bør dog ikke vænne dig til at behandle dem ens, da de oftest vil opføre sig anderledes:For eksempel:

Antag, at du har en tabel tbl :

id   text
1    NULL
2    
3    abc

Bemærk: 1 indeholder en NULL værdi, og 2 indeholder en tom streng ('' ).

Hvis du kører følgende forespørgsel:

SELECT * FROM tbl WHERE text != ''

... det vil returnere post 3.

Hvis du kører følgende forespørgsel:

SELECT * FROM tbl WHERE text IS NOT NULL

... det vil returnere post 2 og 3.



  1. C#:Objekt kan ikke castes fra DbNull til andre typer

  2. Indsættelse af nationale tegn i en orakel NCHAR eller NVARCHAR kolonne virker ikke

  3. Brug af fremmednøgler til at erstatte kontrolbegrænsning

  4. Php kalder sqlserver backup database script, backup fil oprettet og derefter slettet