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

Bagaimana MySQL menangani kueri nilai non-null? (Pernyataan SELECT MySQL IS NOT NULL)

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 memeriksa apakah kolom chenweiliang_test_tbl dalam tabel data bernilai NULL, Anda harus menggunakan IS NULL dan IS NOT NULL , seperti yang ditunjukkan pada 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 );
?>

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Gulir ke Atas