Artikulo Direktoryo
MySQL databasePaano pangasiwaan ang mga query na hindi null na halaga?MySQL ay hindi null select statement
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 秒)
Upang malaman kung ang chenweiliang_test_tbl column sa data table ay NULL, dapat mong gamitinAY WALANG BISAAtAY HINDI null, ang 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 );
?>
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ibinahagi "Paano pinangangasiwaan ng MySQL database ang mga query na hindi null value? Ang MySQL ay hindi null select statement" upang matulungan ka.
Maligayang pagdating upang ibahagi ang link ng artikulong ito:https://www.chenweiliang.com/cwl-491.html
Upang i-unlock ang higit pang mga nakatagong trick🔑, maligayang pagdating sa aming Telegram channel!
Share and like kung nagustuhan mo! Ang iyong mga pagbabahagi at pag-like ay ang aming patuloy na pagganyak!