Article Directory
MySQL нөлдүк мааниге ээ эмес суроолорду кантип иштетет? (MySQL IS NULL SELECT оператору эмес)
MySQLде нөлдүк иштетүү
Биз MySQL маалымат таблицасындагы маалыматтарды окуу үчүн SQL SELECT буйругун жана WHERE пунктун колдоноорун билебиз, бирок берилген суроо шарты талаасы NULL болгондо, буйрук туура иштебей калышы мүмкүн.
Бул кырдаалды чечүү үчүн, MySQL үч негизги операторлорду камсыз кылат:
- НӨЛ:Бул оператор мамычанын мааниси NULL болгондо чындыкты кайтарат.
- NULL ЭМЕС:Оператор мамычанын мааниси NULL болбогондо true кайтарат.
- <=>: Салыштыруу оператору (= операторунан айырмаланып) эки салыштырылган маани NULL болгондо чындыкты кайтарат.
NULL боюнча шарттуу салыштыруу операциялары өзгөчө.Сиз = NULL же колдоно албайсыз! =NULL тилкеден NULL маанилерди табат.
MySQLде NULL маанисин башка маани менен салыштыруу (ал тургай NULL да) ар дайым жалганды кайтарат, б.а. NULL = NULL жалганды кайтарат.
NULL MySQLде IS NULL жана IS NULL операторлору аркылуу иштетилет.
Буйрук сапта NULL маанисин колдонуңуз
Төмөнкү мисалда, chenweiliang маалымат базасындагы chenweiliang_test_tbl таблицасы эки мамычаны камтыган, chenweiliang_author жана chenweiliang_count, ал эми NULL маанилери chenweiliang_countга киргизилиши үчүн коюлган.
Instance
Төмөнкү мисалдарды колдонуп көрүңүз:
Маалымат таблицасын түзүү 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 秒)
Төмөнкү мисалда сиз = жана ! = оператору иштебейт:
mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ; 空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ; 空集(0.01 秒)
Маалыматтар таблицасындагы chenweiliang_test_tbl тилкесинин NULL экенин текшерүү үчүн, төмөнкү мисалда көрсөтүлгөндөй, IS NULL жана IS NOT NULL колдонушуңуз керек:
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 秒)
PHP скрипти менен NULL маанилерин иштетүү
PHP скриптинде сиз өзгөрмөнүн бош экендигин иштеп чыгуу үчүн if...else операторун колдоно аласыз жана тиешелүү шарттуу операторду түзө аласыз.
Төмөнкү мисалда PHP $chenweiliang_count өзгөрмөсүн орнотуп, андан кийин ал өзгөрмөнү маалымат таблицасындагы chenweiliang_count талаасы менен салыштыруу үчүн колдонот:
Сыноо боюнча MySQL ТАРТИП:
<?
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 );
?>
Чен Вэйлиангдын блогунда ( https://www.chenweiliang.com/ ) бөлүшүлгөн "MySQL маалымат базасында нөлдүк эмес маанидеги сурамдарды кантип иштетүү керек? MySQL NULL SELECT оператору ЭМЕС" деген макала сизге пайдалуу болот деп үмүттөнөбүз.
Бул макаланын шилтемеси менен бөлүшүүдөн тартынбаңыз: https://www.chenweiliang.com/cwl-491.html
