Чӣ тавр пойгоҳи додаҳои MySQL дархостҳои арзиши ғайримуқаррариро идора мекунад? MySQL изҳороти интихоби нул нест

пойгоҳи додаҳои MySQLЧӣ тавр коркарди дархостҳои арзиши ғайримуқаррарӣ?MySQL изҳороти интихоб нул нест

Коркарди нул дар MySQL

Мо аллакай медонем, ки MySQL фармони SQL SELECT ва банди WHERE-ро барои хондани маълумот дар ҷадвали додаҳо истифода мебарад, аммо вақте ки майдони ҳолати дархост NULL аст, фармон метавонад дуруст кор накунад.

Барои ҳалли ин вазъият, MySQL се оператори асосиро пешниҳод мекунад:

  • НЕСТ:Ин оператор ҳангоми NULL будани арзиши сутун ҳақиқиро бармегардонад.
  • НЕСТ НЕСТ:Оператор ҳақиқиро бармегардонад, вақте ки арзиши сутун NULL набошад.
  • <=>:  Оператори муқоисавӣ (баръакси оператори =) ҳақиқиро бармегардонад, вақте ки ду арзиши муқоисашуда NULL мебошанд.

Амалҳои муқоисаи шартӣ дар NULL махсус мебошанд.Шумо наметавонед = NULL ё ! =NULL дар сутун арзишҳои NULL-ро пайдо мекунад.

Дар MySQL, муқоисаи арзиши NULL бо ягон арзиши дигар (ҳатто NULL) ҳамеша бардурӯғ бармегардонад, яъне NULL = NULL бардурӯғ бар мегардонад.

NULL дар MySQL бо истифода аз операторҳои IS NULL ва IS NULL кор карда мешавад.


Дар сатри фармон арзиши NULL-ро истифода баред

Дар мисоли зерин, ҷадвали chenweiliang_test_tbl дар пойгоҳи додаи chenweiliang барои дорои ду сутун, chenweiliang_author ва chenweiliang_count гузошта шудааст ва арзишҳои NULL дар chenweiliang_count ворид карда мешаванд.

мисол

Мисолҳои зеринро санҷед:

Эҷоди ҷадвали маълумот 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 аст, шумо боядНОҲИЯНОҲИЯИ БОХТАР, мисоли зерин:

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 秒) 

Коркарди арзишҳои NULL бо скрипти PHP

Дар скрипти 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 Blog ( https://www.chenweiliang.com/ ) муштарак "Чӣ тавр пойгоҳи додаҳои MySQL дархостҳои арзиши ғайримуқаррариро иҷро мекунад? MySQL изҳороти нул интихобшуда нест" барои кӯмак ба шумо.

Хуш омадед ба мубодилаи истиноди ин мақола:https://www.chenweiliang.com/cwl-491.html

Хуш омадед ба канали Telegram блоги Чен Вейлян барои гирифтани навсозиҳои охирин!

🔔 Аввалин шуда дар феҳристи болоии канал "Дастури истифодаи абзори AI-и ChatGPT Content Marketing" -ро гиред! 🌟
📚 Ин дастур дорои арзиши бузург аст, 🌟Ин як имконияти нодир аст, онро аз даст надиҳед! ⏰⌛💨
Агар ба шумо маъқул бошад, мубодила кунед ва лайк монед!
Мубодилаи шумо ва лайкҳои шумо ангезаи доимии мост!

 

发表 评论

Суроғаи почтаи электронии шумо нашр карда намешавад. 必填 项 已 用 * Нишон

ба боло ҳаракат кунед