Direktori Artikel
pangkalan data MySQLBagaimana untuk mengendalikan pertanyaan nilai bukan nol?MySQL bukan penyataan pilih nol
Pengendalian null dalam MySQL
Kita sudah tahu bahawa MySQL menggunakan perintah SQL SELECT dan klausa WHERE untuk membaca data dalam jadual data, tetapi apabila medan syarat pertanyaan yang disediakan adalah NULL, arahan itu mungkin tidak berfungsi dengan baik.
Untuk mengendalikan keadaan ini, MySQL menyediakan tiga pengendali utama:
- IS NULL:Operator ini mengembalikan benar apabila nilai lajur adalah NULL.
- BUKAN NULL:Operator mengembalikan benar apabila nilai lajur bukan NULL.
- <=>: Operator perbandingan (tidak seperti operator =) mengembalikan benar apabila dua nilai yang dibandingkan adalah NULL.
Operasi perbandingan bersyarat pada NULL adalah istimewa.Anda tidak boleh menggunakan = NULL atau ! =NULL mencari nilai NULL dalam lajur.
Dalam MySQL, perbandingan nilai NULL dengan mana-mana nilai lain (walaupun NULL) sentiasa mengembalikan palsu, iaitu NULL = NULL mengembalikan palsu.
NULL dikendalikan dalam MySQL menggunakan operator IS NULL dan IS NOT NULL.
Gunakan nilai NULL dalam command prompt
Dalam contoh berikut, jadual chenweiliang_test_tbl dalam pangkalan data chenweiliang ditetapkan untuk mengandungi dua lajur, chenweiliang_author dan chenweiliang_count, dan nilai NULL ditetapkan untuk dimasukkan dalam chenweiliang_count.
contoh
Cuba contoh berikut:
Cipta jadual 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 boleh lihat = 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 sama ada lajur chenweiliang_test_tbl dalam jadual data adalah NULL, anda mesti menggunakanIS NULL和TIDAK 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 秒)
Mengendalikan nilai NULL dengan skrip PHP
Dalam skrip PHP, anda boleh menggunakan pernyataan if...else untuk memproses sama ada pembolehubah kosong dan menjana pernyataan bersyarat yang sepadan.
Dalam contoh berikut PHP menetapkan pembolehubah $chenweiliang_count dan kemudian menggunakan pembolehubah itu untuk membandingkan dengan medan chenweiliang_count dalam jadual data:
MySQL ORDER OLEH ujian:
<?
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 );
?>
Blog Harapan Chen Weiliang ( https://www.chenweiliang.com/ ) berkongsi "Bagaimana pangkalan data MySQL mengendalikan pertanyaan nilai bukan nol? MySQL bukan pernyataan pilih nol" untuk membantu anda.
Selamat datang untuk berkongsi pautan artikel ini:https://www.chenweiliang.com/cwl-491.html
Untuk membuka lebih banyak helah tersembunyi🔑, dialu-alukan untuk menyertai saluran Telegram kami!
Share dan like jika anda suka! Perkongsian dan suka anda adalah motivasi berterusan kami!