MySQL маалымат базасы нөл эмес маанидеги суроону кантип иштетет? MySQL нөлдүк тандоо билдирүүсү эмес

MySQL маалымат базасынөл эмес маани сурамдарын кантип иштетүү керек?MySQL null тандоо билдирүүсү эмес

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 ЭМЕС, төмөнкү мисал:

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

 

Hope Chen Weiliang блогу ( https://www.chenweiliang.com/ ) бөлүшүлгөн "MySQL маалымат базасы нөл эмес маанидеги сурамдарды кантип иштетет? MySQL сизге жардам берүү үчүн null тандоо билдирүүсү эмес.

Бул макаланын шилтемесин бөлүшүүгө кош келиңиз:https://www.chenweiliang.com/cwl-491.html

Акыркы жаңылыктарды алуу үчүн Чен Вейляндын блогунун Telegram каналына кош келиңиз!

🔔 Каналдын башкы каталогунан баалуу "ChatGPT Content Marketing AI куралын колдонуу боюнча колдонмону" биринчилерден болуп алыңыз! 🌟
📚 Бул колдонмо чоң баалуулуктарды камтыйт, 🌟Бул сейрек кездешүүчү мүмкүнчүлүк, аны өткөрүп жибербеңиз! ⏰⌛💨
Бөлүшүп, жакса лайк!
Сиздин бөлүшүүңүз жана лайктарыңыз биздин үзгүлтүксүз мотивациябыз!

 

发表 评论

Электрондук почта дарегиңиз жарыяланбайт. Милдеттүү талаалар колдонулат * 标注

өйдө сыдырыңыз