Bagaimana database MySQL menangani kueri nilai non-null? MySQL bukan pernyataan pilih nol

database MySQLBagaimana cara menangani kueri nilai non-null?MySQL bukan pernyataan pilih nol

Penanganan nol di MySQL

Kita telah mengetahui bahwa MySQL menggunakan perintah SQL SELECT dan klausa WHERE untuk membaca data dalam tabel data, tetapi ketika bidang kondisi kueri yang disediakan adalah NULL, perintah tersebut mungkin tidak berfungsi dengan baik.

Untuk menangani situasi ini, MySQL menyediakan tiga operator utama:

  • NULL:Operator ini mengembalikan nilai true ketika nilai kolom adalah NULL.
  • BUKAN NULL:Operator mengembalikan nilai true ketika nilai kolom bukan NULL.
  • <=>:  Operator perbandingan (tidak seperti operator =) mengembalikan nilai true ketika dua nilai yang dibandingkan adalah NULL.

Operasi perbandingan bersyarat pada NULL adalah khusus.Anda tidak dapat menggunakan = NULL atau ! =NULL menemukan nilai NULL di kolom.

Di MySQL, perbandingan nilai NULL dengan nilai lain (bahkan NULL) selalu menghasilkan false, yaitu NULL = NULL mengembalikan false.

NULL ditangani di MySQL menggunakan operator IS NULL dan IS NOT NULL.


Gunakan nilai NULL di command prompt

Dalam contoh berikut, tabel chenweiliang_test_tbl dalam database chenweiliang diatur agar berisi dua kolom, chenweiliang_author dan chenweiliang_count, dan nilai NULL diatur untuk dimasukkan ke dalam chenweiliang_count.

Contoh

Coba contoh berikut:

Buat tabel data 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 秒) 

Dalam contoh berikut Anda dapat melihat = dan ! Operator = tidak berfungsi:

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

Untuk mengetahui apakah kolom chenweiliang_test_tbl di tabel data adalah NULL, Anda harus menggunakanIS NULLBUKAN NULL, contoh berikut:

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

Menangani nilai NULL dengan skrip PHP

Dalam skrip PHP, Anda dapat menggunakan pernyataan if...else untuk memproses apakah variabel kosong dan menghasilkan pernyataan bersyarat yang sesuai.

Dalam contoh berikut, PHP menetapkan variabel $chenweiliang_count dan kemudian menggunakan variabel tersebut untuk membandingkan dengan bidang chenweiliang_count di tabel data:

Tes MySQL ORDER BY:

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

 

Harapan Chen Weiliang Blog ( https://www.chenweiliang.com/ ) bersama "Bagaimana database MySQL menangani kueri nilai non-null? MySQL bukan pernyataan pilih nol" untuk membantu Anda.

Selamat datang untuk membagikan tautan artikel ini:https://www.chenweiliang.com/cwl-491.html

Selamat datang di saluran Telegram blog Chen Weiliang untuk mendapatkan pembaruan terkini!

🔔 Jadilah orang pertama yang mendapatkan "Panduan Penggunaan Alat AI Pemasaran Konten ChatGPT" yang berharga di direktori teratas saluran! 🌟
📚 Panduan ini mengandung nilai yang sangat besar, 🌟Ini adalah kesempatan langka, jangan sampai terlewatkan! ⏰⌛💨
Bagikan dan sukai jika Anda suka!
Berbagi dan suka Anda adalah motivasi berkelanjutan kami!

 

发表 评论

Alamat email Anda tidak akan dipublikasikan. 必填 项 已 用 * 标注

滚动 到 顶部