MySQL өгөгдлийн сан нь null бус утгын асуулгыг хэрхэн зохицуулдаг вэ? MySQL нь null сонгох мэдэгдэл биш юм

MySQL мэдээллийн санТэг биш утгын асуулгыг хэрхэн зохицуулах вэ?MySQL null сонгох мэдэгдэл биш юм

MySQL дээр null ажиллах

MySQL нь өгөгдлийн хүснэгт дэх өгөгдлийг уншихын тулд SQL SELECT команд болон WHERE заалтыг ашигладаг гэдгийг бид аль хэдийн мэдэж байгаа боловч өгөгдсөн асуулгын нөхцөлийн талбар NULL байвал тушаал зөв ажиллахгүй байж магадгүй юм.

Энэ нөхцөл байдлыг зохицуулахын тулд MySQL гурван үндсэн операторыг хангадаг:

  • IS NULL:Баганын утга NULL байх үед энэ оператор үнэнийг буцаана.
  • БУС БОЛОХГҮЙ:Баганын утга NULL биш үед оператор үнэнийг буцаана.
  • <=>:  Харьцуулсан хоёр утга NULL байх үед харьцуулах оператор (= оператороос ялгаатай) үнэнийг буцаана.

NULL дээрх нөхцөлт харьцуулах үйлдлүүд онцгой байдаг.Та = NULL эсвэл ашиглах боломжгүй! =NULL нь баганад NULL утгыг олно.

MySQL-д NULL утгыг өөр ямар ч утгатай (NULL ч гэсэн) харьцуулах нь үргэлж худал, өөрөөр хэлбэл NULL = NULL нь худал буцаана.

NULL нь MySQL-д IS NULL ба IS NOT NULL операторуудыг ашиглан зохицуулагддаг.


Тушаал хүлээх мөрөнд NULL утгыг ашиглана уу

Дараах жишээнд chenweiliang мэдээллийн сан дахь chenweiliang_test_tbl хүснэгтийг 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 байгаа эсэхийг мэдэхийн тулд та дараахийг ашиглах ёстой.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 өгөгдлийн сан нь null бус утгын асуулгыг хэрхэн зохицуулдаг вэ? MySQL нь null select statement биш" гэж танд туслах болно.

Энэ нийтлэлийн холбоосыг хуваалцахад тавтай морилно уу:https://www.chenweiliang.com/cwl-491.html

Чен Вэйляны блогын Telegram сувагт тавтай морил, хамгийн сүүлийн үеийн мэдээг аваарай!

🔔 Сувгийн шилдэг лавлахаас "ChatGPT Content Marketing AI Tool Usage Guide"-г хамгийн түрүүнд аваарай! 🌟
📚 Энэхүү гарын авлага нь асар их үнэ цэнийг агуулсан, 🌟Энэ бол ховор боломж, бүү алдаарай! ⏰⌛💨
Хэрэв танд таалагдвал лайк дарж, хуваалцаарай!
Таны хуваалцах, дуртай зүйл бол бидний байнгын урам зориг юм!

 

发表 评论

Таны имэйл хаяг нийтлэгдэхгүй. 必填 项 已 用 дээр ажиллаж байна * 标注

滚动 到 顶部