MySQL veritabanı boş olmayan değer sorgularını nasıl işler? MySQL boş seçim ifadesi değil

MySQL veritabanıBoş olmayan değer sorguları nasıl işlenir?MySQL null select ifadesi değil

MySQL'de boş işlem

MySQL'in veri tablosundaki verileri okumak için SQL SELECT komutunu ve WHERE yan tümcesini kullandığını zaten biliyoruz, ancak sağlanan sorgu koşulu alanı NULL olduğunda, komut düzgün çalışmayabilir.

Bu durumu ele almak için MySQL üç ana operatör sağlar:

  • NULL:Bu operatör, sütun değeri NULL olduğunda true değerini döndürür.
  • NULL DEĞİLDİR:Sütun değeri NULL olmadığında operatör true değerini döndürür.
  • <=>:  Karşılaştırma operatörü (= operatörünün aksine), karşılaştırılan iki değer NULL olduğunda true değerini döndürür.

NULL üzerinde koşullu karşılaştırma işlemleri özeldir.= NULL veya ! kullanamazsınız. =NULL, sütunda NULL değerleri bulur.

MySQL'de, bir NULL değerinin başka herhangi bir değerle (NULL bile olsa) karşılaştırılması her zaman false döndürür, yani NULL = NULL, false döndürür.

NULL, MySQL'de IS NULL ve IS NOT NULL operatörleri kullanılarak işlenir.


Komut isteminde NULL değeri kullanın

Aşağıdaki örnekte, chenweiliang veritabanındaki chenweiliang_test_tbl tablosu, chenweiliang_author ve chenweiliang_count olmak üzere iki sütun içerecek şekilde ayarlanmıştır ve NULL değerleri chenweiliang_count içine eklenecek şekilde ayarlanmıştır.

Örnek

Aşağıdaki örnekleri deneyin:

Veri tablosu oluştur 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 秒) 

Aşağıdaki örnekte = ve ! = operatörü çalışmıyor:

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

Veri tablosundaki chenweiliang_test_tbl sütununun NULL olup olmadığını öğrenmek için şunu kullanmalısınız:NULLNULL DEĞİL, aşağıdaki örnek:

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 betiği ile NULL değerlerin işlenmesi

PHP betiğinde, değişkenin boş olup olmadığını işlemek ve karşılık gelen bir koşullu ifade oluşturmak için if...else deyimini kullanabilirsiniz.

Aşağıdaki örnekte PHP, $chenweiliang_count değişkenini ayarlar ve ardından veri tablosundaki chenweiliang_count alanıyla karşılaştırmak için bu değişkeni kullanır:

MySQL SİPARİŞ TARAFINDAN test:

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

 

Umut Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) "MySQL veritabanı boş olmayan değer sorgularını nasıl işler? MySQL, size yardımcı olmak için boş seçim ifadesi değil".

Bu makalenin bağlantısını paylaşmaya hoş geldiniz:https://www.chenweiliang.com/cwl-491.html

En son güncellemeleri almak için Chen Weiliang'ın blogunun Telegram kanalına hoş geldiniz!

🔔 Kanalın üst dizinindeki değerli "ChatGPT İçerik Pazarlama Yapay Zeka Aracı Kullanım Kılavuzunu" alan ilk kişi olun! 🌟
📚 Bu rehber çok büyük değer içeriyor, 🌟Bu nadir bir fırsat, kaçırmayın! ⏰⌛💨
İsterseniz paylaşın ve beğenin!
Paylaşımlarınız ve beğenileriniz bizim sürekli motivasyonumuz!

 

发表 评论

E-posta hesabınız yayımlanmayacak. 必填 项 已 用 * 标注

yukarı kaydır