Artikel Verzeechnes
Wéi behandelt MySQL Ufroen ouni Nullwäerter? (MySQL IS NOT NULL SELECT Instruktioun)
Null Handhabung an MySQL
Mir wësse scho datt MySQL de SQL SELECT Kommando an d'WHERE Klausel benotzt fir d'Donnéeën an der Datentabelle ze liesen, awer wann d'Query Conditioun Feld NULL ass, funktionnéiert de Kommando vläicht net richteg.
Fir dës Situatioun ze handhaben, bitt MySQL dräi grouss Betreiber:
- ASS NULL:Dëse Bedreiwer gëtt richteg zréck wann de Kolonnwäert NULL ass.
- ASS NET NULL:De Bedreiwer gëtt richteg zréck wann de Kolonnwäert net NULL ass.
- <=>: De Vergläichsbedreiwer (am Géigesaz zum = Bedreiwer) gëtt richteg zréck wann déi zwee verglachte Wäerter NULL sinn.
Bedingungsverglach Operatiounen op NULL si speziell.Dir kënnt net = NULL oder ! =NULL fënnt NULL Wäerter an der Kolonn.
Am MySQL gëtt de Verglach vun engem NULL Wäert mat all anere Wäert (och NULL) ëmmer falsch zréck, dh NULL = NULL gëtt falsch zréck.
NULL gëtt a MySQL mat den IS NULL an IS NOT NULL Betreiber gehandhabt.
Benotzt NULL Wäert an Kommando VIRSCHLOEN
Am folgende Beispill ass d'Tabell chenweiliang_test_tbl an der Datebank chenweiliang gesat fir zwou Kolonnen ze enthalen, chenweiliang_author an chenweiliang_count, an NULL Wäerter si gesat fir an chenweiliang_count agebaut ze ginn.
Instanz
Probéiert déi folgend Beispiller:
Schafen Daten Dësch chenweiliang_test_tbl
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 秒)
Am folgende Beispill kënnt Dir gesinn = an! Den = Bedreiwer funktionnéiert net:
mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ; 空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ; 空集(0.01 秒)
Fir ze kontrolléieren, ob d'Kolonn chenweiliang_test_tbl an enger Datentabell NULL ass, musst Dir IS NULL an IS NOT NULL benotzen , wéi am folgende Beispill gewisen:
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 秒)
Handhaben NULL Wäerter mat PHP Skript
Am PHP Skript kënnt Dir d'If ... else Ausso benotzen fir ze veraarbecht ob d'Variabel eidel ass an eng entspriechend bedingt Ausso generéieren.
Am folgende Beispill setzt PHP d'$chenweiliang_count Variabel a benotzt dann dës Variabel fir mat dem chenweiliang_count Feld an der Datentabelle ze vergläichen:
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 );
?>
Hoffentlech ass den Artikel "How to handle non-null value queryes in MySQL database? MySQL IS NOT NULL SELECT statement", deen um Blog vum Chen Weiliang ( https://www.chenweiliang.com/ ) gedeelt gouf, Iech hëllefräich.
Deelt gären de Link vun dësem Artikel: https://www.chenweiliang.com/cwl-491.html
