Hoe behannelet MySQL-database net-nulweardefragen? MySQL is gjin null selektearje statement

MySQL databankHoe kinne jo fragen sûnder nulwearde behannelje?MySQL is net null selektearje statement

Null handling yn MySQL

Wy witte al dat MySQL it SQL SELECT-kommando en de WHERE-klausule brûkt om de gegevens yn 'e gegevenstabel te lêzen, mar as it opjûne querybedingingsfjild NULL is, kin it kommando net goed wurkje.

Om dizze situaasje te behanneljen, biedt MySQL trije grutte operators:

  • IS NULL:Dizze operator jout wier as de kolomwearde NULL is.
  • IS NET NULL:De operator jout wier as de kolomwearde net NULL is.
  • <=>:  De fergelikingsoperator (oars as de = operator) jout wier as de twa fergelike wearden NULL binne.

Betingstlike fergelikingsoperaasjes op NULL binne spesjaal.Jo kinne = NULL of ! =NULL fynt NULL-wearden yn 'e kolom.

Yn MySQL jout in ferliking fan in NULL-wearde mei elke oare wearde (sels NULL) altyd falsk werom, dat wol sizze NULL = NULL jout falsk werom.

NULL wurdt yn MySQL behannele mei de operators IS NULL en IS NOT NULL.


Brûk NULL wearde yn kommando prompt

Yn it folgjende foarbyld is de tabel chenweiliang_test_tbl yn 'e databank chenweiliang ynsteld om twa kolommen te befetsjen, chenweiliang_author en chenweiliang_count, en NULL-wearden binne ynsteld om te wurde ynfoege yn chenweiliang_count.

Instance

Besykje de folgjende foarbylden:

Meitsje gegevens tabel 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 秒) 

Yn it folgjende foarbyld kinne jo sjen = en! De operator = wurket 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 秒)

Om út te finen oft de kolom chenweiliang_test_tbl yn 'e gegevenstabel NULL is, moatte jo brûkeIS NULLenIS NET NULL, it folgjende foarbyld:

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 秒) 

NULL-wearden behannelje mei PHP-skript

Yn it PHP-skript kinne jo de if...else-stelling brûke om te ferwurkjen oft de fariabele leech is en in korrespondearjende betingststelling generearje.

Yn it folgjende foarbyld stelt PHP de fariabele $chenweiliang_count yn en brûkt dy fariabele dan om te fergelykjen mei it chenweiliang_count-fjild yn 'e gegevenstabel:

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 );
?>

 

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "Hoe behannelet MySQL-database net-nulweardefragen? MySQL is gjin null select statement" om jo te helpen.

Wolkom om de keppeling fan dit artikel te dielen:https://www.chenweiliang.com/cwl-491.html

Wolkom by it Telegram-kanaal fan Chen Weiliang's blog om de lêste updates te krijen!

🔔 Wês de earste om de weardefolle "ChatGPT Content Marketing AI Tool Usage Guide" te krijen yn 'e kanaaltopmap! 🌟
📚 Dizze hantlieding befettet enoarme wearde, 🌟Dit is in seldsume kâns, mis it net! ⏰⌛💨
Diel en like as jo wolle!
Jo dielen en likes binne ús trochgeande motivaasje!

 

发表 评论

Jo e-postadres wurdt net publisearre. Ferplichte fjilden wurde brûkt * Etiket

rôlje nei boppen