Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL, besser NULL oder leere Zeichenfolge einfügen?

Durch die Verwendung von NULL Sie können zwischen "keine Daten setzen" und "leere Daten setzen" unterscheiden.

Einige weitere Unterschiede:

  • Eine LENGTH von NULL ist NULL , eine LENGTH eines leeren Strings ist 0 .

  • NULL s werden vor den leeren Strings sortiert.

  • COUNT(message) zählt leere Zeichenketten aber nicht NULL s

  • Sie können mit einer gebundenen Variablen nach einem leeren String suchen, aber nicht nach NULL . Diese Abfrage:

    SELECT  *
    FROM    mytable 
    WHERE   mytext = ?
    

    wird niemals mit NULL übereinstimmen in mytext , egal welchen Wert Sie vom Client übergeben. Um NULL abzugleichen s müssen Sie eine andere Abfrage verwenden:

    SELECT  *
    FROM    mytable 
    WHERE   mytext IS NULL