MySQL ma'lumotlar bazasi null bo'lmagan qiymat so'rovlarini qanday boshqaradi? MySQL null tanlash bayonoti emas

MySQL ma'lumotlar bazasiNull bo'lmagan qiymat so'rovlarini qanday boshqarish kerak?MySQL null tanlash bayonoti emas

MySQL-da null ishlov berish

Ma'lumotlar jadvalidagi ma'lumotlarni o'qish uchun MySQL SQL SELECT buyrug'i va WHERE bandidan foydalanishini allaqachon bilamiz, ammo taqdim etilgan so'rovlar sharti maydoni NULL bo'lsa, buyruq to'g'ri ishlamasligi mumkin.

Ushbu vaziyatni hal qilish uchun MySQL uchta asosiy operatorni taqdim etadi:

  • IS NULL:Agar ustun qiymati NULL bo'lsa, bu operator true qiymatini qaytaradi.
  • NULL EMAS:Ustun qiymati NULL bo'lmaganda operator true qiymatini qaytaradi.
  • <=>:  Taqqoslash operatori (= operatoridan farqli o'laroq) taqqoslangan ikkita qiymat NULL bo'lsa, rostni qaytaradi.

NULLda shartli taqqoslash amallari maxsus hisoblanadi.Siz = NULL yoki dan foydalana olmaysiz! =NULL ustundagi NULL qiymatlarni topadi.

MySQL da NULL qiymatini boshqa har qanday qiymat (hatto NULL ham) bilan taqqoslash har doim yolg'onni qaytaradi, ya'ni NULL = NULL noto'g'ri qiymatni qaytaradi.

NULL MySQL da IS NULL va IS NOT NULL operatorlari yordamida ishlanadi.


Buyruqlar satrida NULL qiymatidan foydalaning

Quyidagi misolda, chenweiliang ma'lumotlar bazasidagi chenweiliang_test_tbl jadvali ikkita ustunni o'z ichiga oladi, chenweiliang_author va chenweiliang_count va NULL qiymatlar chenweiliang_countga kiritilishi uchun o'rnatiladi.

Misol

Quyidagi misollarni sinab ko'ring:

chenweiliang_test_tbl ma'lumotlar jadvalini yarating

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

Quyidagi misolda siz = va ! = operatori ishlamaydi:

mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ;
空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ;
空集(0.01 秒)

Ma'lumotlar jadvalidagi chenweiliang_test_tbl ustuni NULL ekanligini bilish uchun siz foydalanishingiz kerakIS NULLNULL emas, quyidagi misol:

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 skripti bilan NULL qiymatlarni qayta ishlash

PHP skriptida siz o'zgaruvchining bo'sh yoki yo'qligini qayta ishlash va mos shartli bayonotni yaratish uchun if...else operatoridan foydalanishingiz mumkin.

Quyidagi misolda PHP $chenweiliang_count o'zgaruvchisini o'rnatadi va keyin ma'lumotlar jadvalidagi chenweiliang_count maydoni bilan solishtirish uchun ushbu o'zgaruvchidan foydalanadi:

MySQL-ni sinov bo'yicha BURTDIRISH:

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

 

Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ ) "MySQL ma'lumotlar bazasi null bo'lmagan qiymat so'rovlarini qanday boshqaradi? MySQL sizga yordam berish uchun null tanlash bayonoti emas.

Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-491.html

Eng so'nggi yangiliklardan xabardor bo'lish uchun Chen Veyliang blogining Telegram kanaliga xush kelibsiz!

🔔 Birinchi bo'lib kanalning yuqori katalogida qimmatli "ChatGPT Content Marketing AI vositasidan foydalanish bo'yicha qo'llanma"ni qo'lga kiriting! 🌟
📚 Ushbu qo'llanmada katta ahamiyatga ega, 🌟Bu kamdan-kam imkoniyat, uni qo'ldan boy bermang! ⏰⌛💨
Baham ko'ring va yoqsa like!
Sizning baham ko'rish va yoqtirishlaringiz bizning doimiy motivatsiyamizdir!

 

发表 评论

Sizning elektron pochta manzilingiz e'lon qilinmaydi. 必填 项 已 用 * Yorliq

tepaga aylantiring