Wir wissen bereits, dass MySQL den SQL-SELECT-Befehl und die WHERE-Klausel verwendet, um die Daten in der Datentabelle zu lesen, aber wenn die bereitgestellt Wenn das Abfragebedingungsfeld NULL ist, funktioniert dieser 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.
IS NOT NULL: Wenn der Wert der Spalte nicht NULL ist, gibt der Operator true zurück.
<=>: Vergleichsoperator (anders als =-Operator), gibt true zurück, wenn die beiden verglichenen Werte NULL sind.
Die bedingte Vergleichsoperation auf NULL ist etwas ganz Besonderes. Sie können nicht = NULL oder ! verwenden. =NULL findet NULL-Werte in der Spalte.
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.
Verwendung von NULL-Werten in der Eingabeaufforderung
Im folgenden Beispiel wird davon ausgegangen, dass die Tabelle tcount_tbl im Datenbankhandbuch zwei Spalten enthält, Tutorial_author und Tutorial_count, und ein NULL-Wert ist eingefügt in Tutorial_count.
Probieren Sie die folgenden Beispiele aus:
root @ host#mysql -u root -p password; 输入密码:******* mysql> use TUTORIALS;数据库已更改mysql> create table tcount_tbl - >( - > tutorial_author varchar(40)NOT NULL, - > tutorial_count INT - >); 查询OK,0行受影响(0.05秒) mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('mahran',20); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)values('mahnaz',NULL); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('Jen',NULL); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('Gill',20); mysql> select * from tcount_tbl; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | 马赫兰 20 | | mahnaz | NULL | | 仁| NULL | | 鳃| 20 | + ----------------- + ---------------- + 4行(0.00秒) MySQL的>
In den folgenden Beispielen sehen Sie = und! Der =-Operator funktioniert nicht
mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL; 空置(0.00秒) mysql> SELECT * FROM tcount_tbl WHERE tutorial_count!= NULL; 空置(0.01秒)
Um abzufragen, ob die Spalte „tutorial_count“ in der Datentabelle NULL ist, müssen Sie IS NULL und IS NOT NULL verwenden, wie im folgenden Beispiel gezeigt:
mysql> SELECT * FROM tcount_tbl - > WHERE tutorial_count IS NULL; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | mahnaz | NULL | | 仁| NULL | + ----------------- + ---------------- + 2行(0.00秒) mysql> select * from tcount_tbl - > WHERE tutorial_count is NOT NULL; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | 马赫兰 20 | | 鳃| 20 | + ----------------- + ---------------- + 2行(0.00秒)
PHP-Skript zur Verarbeitung des NULL-Werts verwenden
Im PHP-Skript können Sie die Anweisung if... else verwenden, um zu verarbeiten, ob die Variable vorhanden ist ist leer und generiert die entsprechende bedingte Anweisung.
Im folgenden Beispiel legt PHP die Variable $tutorial_count fest und verwendet diese Variable dann zum Vergleich mit dem Feld „tutorial_count“ in der Datentabelle:
<?PHP $ dbhost ='localhost:3036'; $ dbuser ='root'; $ dbpass ='rootpassword'; $ conn = mysql_connect($ dbhost,$ dbuser,$ dbpass); if(!$ conn) { die('无法连接:'。mysql_error()); } if(isset($ tutorial_count)) { $ sql ='SELECT tutorial_author,tutorial_count FROM tcount_tbl WHERE tutorial_count = $ tutorial_count'; } 其他 { $ sql ='SELECT tutorial_author,tutorial_count FROM tcount_tbl WHERE tutorial_count IS $ tutorial_count'; } mysql_select_db( '教程'); $ retval = mysql_query($ sql,$ conn); 如果(!$ retval) { die('无法获取数据:'mysql_error()); } while($ row = mysql_fetch_array($ retval,MYSQL_ASSOC)) { echo“作者:{$ row ['tutorial_author']} <br>”。 “Count:{$ row ['tutorial_count']} <br>”。 “--------------------------------结果”; } echo“成功获取数据\ n”; mysql_close($康恩); ?>
[Verwandte Empfehlungen]
1. Besondere Empfehlung: "php Programmer Toolbox" V0.1 Version herunterladen
2. Kostenloses MySQL-Online-Video-Tutorial
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zur MySQL-NULL-Wert-Verarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!