Heim >Datenbank >MySQL-Tutorial >MySQL-NULL-Wert-Behandlung

MySQL-NULL-Wert-Behandlung

巴扎黑
巴扎黑Original
2016-12-19 11:16:431432Durchsuche

MySQL verwendet den SQL-SELECT-Befehl und die WHERE-Klausel, um Daten aus der Datentabelle zu lesen. Wenn das bereitgestellte Abfragebedingungsfeld jedoch NULL ist, funktioniert der Befehl möglicherweise nicht ordnungsgemäß.

Um mit dieser Situation umzugehen, stellt MySQL drei Hauptoperatoren zur Verfügung:

IS NULL: Wenn der Spaltenwert NULL ist, gibt dieser Operator „true“ zurück.

IST NICHT NULL: Wenn der Spaltenwert nicht NULL ist, gibt der Operator „true“ zurück.

Die bedingte Vergleichsoperation auf NULL ist etwas ganz Besonderes. Sie können = NULL oder != NULL nicht verwenden, um NULL-Werte in einer Spalte zu finden.

In MySQL gibt der Vergleich eines NULL-Werts mit einem anderen Wert (sogar NULL) immer „false“ zurück, d. h. NULL = NULL gibt „false“ zurück.

MySQL verarbeitet NULL mit den Operatoren IS NULL und IS NOT NULL.

NULL-Werte in der Eingabeaufforderung verwenden

Im folgenden Beispiel wird davon ausgegangen, dass die Tabelle tcount_tbl in der Datenbank RUNOOB zwei Spalten enthält, runoob_author und runoob_count, und ein NULL-Wert ist in runoob_count gesetzt.

Versuchen Sie das folgende Beispiel:

MariaDB [RUNOOB]> select * from tcount_tbl;
+---------------+-- - ----------+
|. runoob_count |
+--------------+---------- ----+
|. mahran                                                                                                         20 |
| 1 |
+--------------+- -------------+
6 Zeilen im Satz (0,00 Sek.)


Sie können im folgenden Beispiel sehen, dass die Operatoren = und != dies nicht tun Arbeit:

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl WHERE runoob_count = NULL;Leerer Satz (0,00 Sek.)

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl WHERE runoob_count != NULL ;Leerer Satz (0,00 Sek.)


Finden Sie heraus, ob die runoob_count-Spalte in der Datentabelle NULL ist, IS NULL und IS NOT NULL müssen verwendet werden, wie im folgenden Beispiel:

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl where runoob_count IS NULL;

+---------- ----+-------------+

|. runoob_count |

+--------------+-----------+

| 🎜>|. Jen |. NULL |
+--------------+- -------------+
2 Zeilen im Satz ( 0,00 Sek.)

MariaDB [RUNOOB]> SELECT * FROM tcount_tbl where runoob_count IS NOT NULL;
+--------------+----- ---------+
|. runoob_count |
+------------------ --------- 🎜> |. 20 | |.
|. 1 |
+-------------+-------------+
4 Reihen in set (0,00 Sek.)


PHP-Skript verwenden, um NULL-Werte zu verarbeiten

Im PHP-Skript können Sie die if...else-Anweisung verwenden, um zu verarbeiten, ob die Variable leer ist, und die zu generieren entsprechende bedingte Anweisung.

Im folgenden Beispiel legt PHP die Variable $runoob_count fest und verwendet diese Variable dann zum Vergleich mit dem Feld runoob_count in der Datentabelle:

$dbhost =' localhost:3036';

$dbuser ='root';

$dbpass ='rootpassword';

$conn = mysql_connect($dbhost, $ dbuser, $dbpass );

if(! $conn )

{

die('Verbindung konnte nicht hergestellt werden: '. mysql_error());

}

if( isset($runoob_count ))

{

$sql ='SELECT runoob_author, runoob_count

FROM tcount_tbl

WHERE runoob_ count IS NOT NULL';

}

else

{

$sql ='SELECT runoob_author, runoob_count

FROM tcount_tbl

WHERE runoob_count IS NULL';

}

mysql_select_db('RUNOOB');

$retval = mysql_query ( $sql, $ conn );

if(! $retval )

{

die('Daten konnten nicht abgerufen werden: '. mysql_error());

}

while($row = mysql_fetch_array($retval, MYSQL_ASSOC))

{

echo "Author:{$row['runoob_author']}
" .

"Anzahl: {$row['runoob_count']}
"------------ ----- --------------
";

}

echo „Daten erfolgreich abgerufen“;

mysql_close($conn );

?>

Ergebnis ausführen:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:MySQL-SortierungNächster Artikel:MySQL-Sortierung