Cyfeiriadur Erthygl
Sut mae MySQL yn trin ymholiadau gwerth nad ydynt yn nwl? (Datganiad MySQL IS NOT NULL SELECT)
Trin null yn MySQL
Rydym eisoes yn gwybod bod MySQL yn defnyddio'r gorchymyn SQL SELECT a'r cymal WHERE i ddarllen y data yn y tabl data, ond pan fo'r maes cyflwr ymholiad a ddarperir yn NULL, efallai na fydd y gorchymyn yn gweithio'n iawn.
Er mwyn delio â'r sefyllfa hon, mae MySQL yn darparu tri gweithredwr mawr:
- YN NULL:Mae'r gweithredwr hwn yn dychwelyd yn wir pan fydd gwerth y golofn yn NULL.
- NID YW'N NULL:Mae'r gweithredwr yn dychwelyd yn wir pan nad yw gwerth y golofn yn NULL.
- <=>: Mae'r gweithredwr cymhariaeth (yn wahanol i'r gweithredwr =) yn dychwelyd yn wir pan fydd y ddau werth a gymharir yn NULL.
Mae gweithrediadau cymharu amodol ar NULL yn arbennig.Ni allwch ddefnyddio = NULL neu ! Mae =NULL yn canfod gwerthoedd NULL yn y golofn.
Yn MySQL, mae cymhariaeth o werth NULL ag unrhyw werth arall (hyd yn oed NULL) bob amser yn dychwelyd ffug, hy NULL = NULL yn dychwelyd ffug.
Ymdrinnir â NULL yn MySQL gan ddefnyddio'r gweithredwyr IS NULL ac NID YW NULL.
Defnyddiwch werth NULL yn anogwr gorchymyn
Yn yr enghraifft ganlynol, mae'r tabl chenweiliang_test_tbl yn y gronfa ddata chenweiliang wedi'i osod i gynnwys dwy golofn, chenweiliang_author a chenweiliang_count, a gosodir gwerthoedd NULL i'w mewnosod yn chenweiliang_count.
enghraifft
Rhowch gynnig ar yr enghreifftiau canlynol:
Creu tabl 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 秒)
Yn yr enghraifft ganlynol gallwch weld = a ! Nid yw'r gweithredwr = yn gweithio:
mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ; 空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ; 空集(0.01 秒)
I wirio a yw'r golofn chenweiliang_test_tbl mewn tabl data yn NULL, rhaid i chi ddefnyddio IS NULL ac IS NOT NULL , fel y dangosir yn yr enghraifft ganlynol:
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 秒)
Trin gwerthoedd NULL gyda sgript PHP
Yn y sgript PHP, gallwch ddefnyddio'r datganiad if...arall i brosesu a yw'r newidyn yn wag a chynhyrchu datganiad amodol cyfatebol.
Yn yr enghraifft ganlynol mae PHP yn gosod y newidyn $ chenweiliang_count ac yna'n defnyddio'r newidyn hwnnw i gymharu â'r maes chenweiliang_count yn y tabl data:
GORCHYMYN MySQL GAN brawf:
<?
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 );
?>
Gobeithio y bydd yr erthygl "Sut i ymdrin ag ymholiadau gwerth nad ydynt yn null mewn cronfa ddata MySQL? Datganiad MySQL IS NOT NULL SELECT" a rennir ar flog Chen Weiliang ( https://www.chenweiliang.com/ ) o gymorth i chi.
Mae croeso i chi rannu'r ddolen erthygl hon: https://www.chenweiliang.com/cwl-491.html
