sql >> Database >  >> RDS >> Mysql

Verschil tussen MySQL IS NIET NULL en !=''

Ja, er is een groot verschil tussen een NULL waarde en een lege/lege waarde.

Hier is één bron dat beschrijft de verschillen.

Wanneer myText IS NULL :

  • myText IS NOT NULL evalueert tot FALSE
  • myText != '' evalueert tot NULL (die zich in wezen hetzelfde gedraagt ​​als FALSE zou je in dit specifieke geval hebben geschreven)

U moet er echter geen gewoonte van maken om ze hetzelfde te behandelen, aangezien ze zich meestal anders zullen gedragen:Bijvoorbeeld:

Stel dat u een tabel tbl . heeft :

id   text
1    NULL
2    
3    abc

Opmerking: 1 bevat een NULL waarde, en 2 bevat een lege tekenreeks ('' ).

Als u de volgende query uitvoert:

SELECT * FROM tbl WHERE text != ''

... het zal record 3 teruggeven.

Als u de volgende query uitvoert:

SELECT * FROM tbl WHERE text IS NOT NULL

... het zal records 2 en 3 teruggeven.



  1. php api beveiligen voor gebruik in Android-applicatie

  2. Milliseconde resolutie van DateTime in Ruby

  3. is MySql goed voor grote databases?

  4. Splits de begrensde tekenreekswaarde in rijen