Artikulo Direktoryo
Paano pinangangasiwaan ng MySQL ang mga query na hindi null value? ( Pahayag na MySQL IS NOT NULL SELECT)
Null handling sa MySQL
Alam na natin na ginagamit ng MySQL ang SQL SELECT command at ang WHERE clause para basahin ang data sa data table, ngunit kapag NULL ang ibinigay na field ng kondisyon ng query, maaaring hindi gumana ng maayos ang command.
Upang mahawakan ang sitwasyong ito, ang MySQL ay nagbibigay ng tatlong pangunahing operator:
- AY WALANG BISA:Ang operator na ito ay nagbabalik ng true kapag ang halaga ng column ay NULL.
- HINDI NULL:Ang operator ay nagbabalik ng true kapag ang halaga ng column ay hindi NULL.
- <=>: Ang operator ng paghahambing (hindi katulad ng = operator) ay nagbabalik ng totoo kapag ang dalawang halaga na pinaghahambing ay NULL.
Ang mga pagpapatakbo ng paghahambing ng kondisyon sa NULL ay espesyal.Hindi mo magagamit ang = NULL o ! =NULL ay nakahanap ng NULL values sa column.
Sa MySQL, ang paghahambing ng isang NULL na halaga sa anumang iba pang halaga (kahit NULL) ay palaging nagbabalik ng false, ibig sabihin, ang NULL = NULL ay nagbabalik ng false.
Ang NULL ay pinangangasiwaan sa MySQL gamit ang IS NULL at IS NOT NULL operator.
Gumamit ng NULL na halaga sa command prompt
Sa sumusunod na halimbawa, ang talahanayang chenweiliang_test_tbl sa database chenweiliang ay nakatakdang maglaman ng dalawang column, chenweiliang_author at chenweiliang_count, at NULL values ay nakatakdang ipasok sa chenweiliang_count.
Pangyayari
Subukan ang mga sumusunod na halimbawa:
Lumikha ng talahanayan ng data 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 秒)
Sa sumusunod na halimbawa makikita mo ang = at ! Ang = operator ay hindi gumagana:
mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ; 空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ; 空集(0.01 秒)
Para masuri kung ang kolum na chenweiliang_test_tbl sa isang talahanayan ng datos ay NULL, dapat mong gamitin ang IS NULL at IS NOT NULL , gaya ng ipinapakita sa sumusunod na halimbawa:
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 秒)
Pangangasiwa sa mga NULL na halaga gamit ang PHP script
Sa script ng PHP, maaari mong gamitin ang if...else na pahayag upang iproseso kung walang laman ang variable at bumuo ng kaukulang conditional statement.
Sa sumusunod na halimbawa, itinatakda ng PHP ang variable na $chenweiliang_count at pagkatapos ay ginagamit ang variable na iyon upang ihambing sa field ng chenweiliang_count sa talahanayan ng data:
MySQL ORDER NG pagsubok:
<?
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 );
?>
Sana ay makatulong sa iyo ang artikulong "Paano pangasiwaan ang mga query na walang null value sa database ng MySQL? Ang pahayag na MySQL IS NOT NULL SELECT" na ibinahagi sa blog ni Chen Weiliang ( https://www.chenweiliang.com/ ).
Huwag mag-atubiling ibahagi ang link ng artikulong ito: https://www.chenweiliang.com/cwl-491.html
