sql >> Databasteknik >  >> RDS >> Mysql

Skillnaden mellan MySQL ÄR INTE NULL och !=''

Ja, det är stor skillnad mellan en NULL värde och ett tomt/tomt värde.

Här är en resurs som beskriver skillnaderna.

När myText IS NULL :

  • myText IS NOT NULL utvärderas till FALSE
  • myText != '' utvärderas till NULL (som i huvudsak beter sig på samma sätt som FALSE skulle du i det här specifika fallet skrev)

Du bör dock inte ta för vana att behandla dem på samma sätt, eftersom de oftast kommer att bete sig annorlunda:Till exempel:

Anta att du har en tabell tbl :

id   text
1    NULL
2    
3    abc

Obs! 1 innehåller en NULL värde och 2 innehåller en tom sträng ('' ).

Om du kör följande fråga:

SELECT * FROM tbl WHERE text != ''

... det kommer att returnera post 3.

Om du kör följande fråga:

SELECT * FROM tbl WHERE text IS NOT NULL

... det kommer att returnera post 2 och 3.



  1. Vilken typ skulle du mappa BigDecimal i Java/Hibernate i MySQL?

  2. PHP MySQL - Hur man infogar standardvärde i ett förberett uttalande

  3. Anslut till SQL Server via PDO med SQL Server Driver

  4. MySQL skiftlägeskänslig fråga