Paano pinangangasiwaan ng MySQL database ang mga query na hindi null value? Ang MySQL ay hindi null select statement

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

 

发表 评论

Ang iyong email address ay hindi maipa-publish. 必填 项 已 用 * Tatak

Mag-scroll sa Tuktok