Wie verarbeitet die MySQL-Datenbank Abfragen mit Nicht-Nullwerten? MySQL ist keine Null-Select-Anweisung

MySQL-DatenbankWie behandelt man Nicht-Null-Wert-Abfragen?MySQL ist keine null select-Anweisung

Nullbehandlung in MySQL

Wir wissen bereits, dass MySQL den SQL SELECT-Befehl und die WHERE-Klausel verwendet, um die Daten in der Datentabelle zu lesen, aber wenn das bereitgestellte Abfragebedingungsfeld NULL ist, funktioniert der Befehl möglicherweise nicht richtig.

Um mit dieser Situation fertig zu werden, bietet MySQL drei Hauptoperatoren:

  • IST NULL:Dieser Operator gibt true zurück, wenn der Spaltenwert NULL ist.
  • IST NICHT NULL:Der Operator gibt true zurück, wenn der Spaltenwert nicht NULL ist.
  • <=>:  Der Vergleichsoperator (im Gegensatz zum =-Operator) gibt wahr zurück, wenn die beiden verglichenen Werte NULL sind.

Bedingte Vergleichsoperationen auf NULL sind etwas Besonderes.Sie können nicht = NULL oder ! =NULL findet NULL-Werte in der Spalte.

In MySQL gibt der Vergleich eines NULL-Werts mit jedem anderen Wert (sogar NULL) immer falsch zurück, dh NULL = NULL gibt falsch zurück.

NULL wird in MySQL mit den Operatoren IS NULL und IS NOT NULL behandelt.


Verwenden Sie den NULL-Wert in der Eingabeaufforderung

Im folgenden Beispiel wird die Tabelle chenweiliang_test_tbl in der Datenbank chenweiliang so eingestellt, dass sie zwei Spalten enthält, chenweiliang_author und chenweiliang_count, und NULL-Werte werden so eingestellt, dass sie in chenweiliang_count eingefügt werden.

Beispiel

Probieren Sie die folgenden Beispiele aus:

Datentabelle chenweiliang_test_tbl erstellen

root @ host #mysql -u root -p password; 输入密码:*******
 mysql > 使用chenweiliang ;
数据库改变了mysql > create table chenweiliang_test_tbl 
 - > (
 - > chenweiliang_author varchar (40 )NOT NULL , - > chenweiliang_count INT 
 - > );
查询OK ,0 行受影响(0.05 秒)mysql >
 
 
INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values (' chenweiliang ' ,20 );
mysql > INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values (' 陈沩亮博客' ,NULL );
mysql > INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values ( ' Google ' ,NULL );
mysql > INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values (' FK ' ,20 );
 
mysql > SELECT * from chenweiliang_test_tbl ; + --------------- + -------------- + | chenweiliang_author | chenweiliang_count | + --------------- + -------------- + | chenweiliang | 20 | | 陈沩亮博客| NULL | | Google | NULL | | FK | 20 | + --------------- + -------------- +
 4 行中集合(0.01 秒) 

Im folgenden Beispiel sehen Sie = und ! Der =-Operator funktioniert nicht:

mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ;
空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ;
空集(0.01 秒)

Um herauszufinden, ob die Spalte chenweiliang_test_tbl in der Datentabelle NULL ist, müssen Sie verwendenIST NULLIST NICHT NULL, folgendes Beispiel:

mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count IS NULL ; + --------------- + -------------- + | chenweiliang_author | chenweiliang_count | + --------------- + -------------- + | 陈沩亮博客| NULL | | Google | NULL | + --------------- + -------------- +
 2 行中的组(0.01 秒)的MySQL > SELECT * 从chenweiliang_test_tbl WHERE chenweiliang_count IS NOT 空值 
 
 ; + --------------- + -------------- + | chenweiliang_author | chenweiliang_count | + --------------- + -------------- + | chenweiliang | 20 | | FK | 20 | + --------------- + -------------- +
 2 行中的组(0.01 秒) 

Umgang mit NULL-Werten mit PHP-Skript

Im PHP-Skript können Sie mit der if...else-Anweisung verarbeiten, ob die Variable leer ist, und eine entsprechende bedingte Anweisung generieren.

Im folgenden Beispiel setzt PHP die Variable $chenweiliang_count und verwendet diese Variable dann zum Vergleichen mit dem Feld chenweiliang_count in der Datentabelle:

MySQL ORDER BY-Test:

<?
php $ dbhost = ' localhost:3306 ' ; // mysql服务器主机地址

$ dbuser = ' root ' ; // mysql用户名
$ dbpass = ' 123456 ' ; // mysql用户名密码
$ conn = mysqli_connect ($ dbhost ,$ dbuser ,$ dbpass );
如果(!$ conn ){ die (' 连接失败:' 。mysqli_error ($ conn ));
} // 设置编码,防止中文乱码

mysqli_query ($ conn ,“ set names utf8 ” );
 
if (isset ($ chenweiliang_count )){ $ sql = “ SELECT chenweiliang_author,chenweiliang_count FROM chenweiliang_test_tbl WHER chenweiliang_count = $ chenweiliang_count ” ;
} else { $ sql = “ SELECT chenweiliang_author,chenweiliang_count FROM chenweiliang_test_tbl WHER chenweiliang_count IS NULL ” ;
} mysqli_select_db ($ conn ,'


 chenweiliang ' );
$ retval = mysqli_query ($ conn ,$ sql );
if (!$ retval ){ die (' 无法读取数据:' 。mysqli_error ($ conn ));
} echo ' <h2>陈沩亮博客IS NULL测试<h2> ' ;
echo ' <table border =“1”> <tr> <td>作者</ td> <td>登陆次数</ td> </ tr> ' ;

 $ retval ,MYSQL_ASSOC )){ echo “ <tr> ” 。
 “ <td> {$ row ['chenweiliang_author']} </ td> ” 。
 “ <td> {$ row ['chenweiliang_count']} </ td> ” 。
 “ </ tr> ” ;
} echo ' </ table> ' ;
mysqli_close ($ conn );
?>

 

Hoffnung Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "Wie behandelt die MySQL-Datenbank Abfragen mit Nicht-Nullwerten? MySQL ist keine Null-Select-Anweisung", um Ihnen zu helfen.

Willkommen, um den Link dieses Artikels zu teilen:https://www.chenweiliang.com/cwl-491.html

Willkommen im Telegrammkanal von Chen Weiliangs Blog, um die neuesten Updates zu erhalten!

🔔 Seien Sie der Erste, der den wertvollen „ChatGPT Content Marketing AI Tool Usage Guide“ im Kanal-Top-Verzeichnis erhält! 🌟
📚 Dieser Leitfaden enthält einen enormen Mehrwert. 🌟Dies ist eine seltene Gelegenheit, verpassen Sie sie nicht! ⏰⌛💨
Teilen und liken, wenn es euch gefällt!
Ihr Teilen und Ihre Likes sind unsere ständige Motivation!

 

发表 评论

Deine Email-Adresse wird nicht veröffentlicht. 必填 项 已 已 * 标注

nach oben scrollen