Hoe hanteer MySQL-databasis nie-nulwaarde-navrae? MySQL is nie 'n null select stelling nie

MySQL databasisHoe om nie-nulwaarde-navrae te hanteer?MySQL is nie 'n null select stelling nie

Nul hantering in MySQL

Ons weet reeds dat MySQL die SQL SELECT-opdrag en die WHERE-klousule gebruik om die data in die datatabel te lees, maar wanneer die veld vir navraagvoorwaardes NULL is, sal die opdrag dalk nie behoorlik werk nie.

Om hierdie situasie te hanteer, bied MySQL drie groot operateurs:

  • IS NULL:Hierdie operateur gee waar wanneer die kolomwaarde NULL is.
  • IS NIE NULL NIE:Die operateur gee waar wanneer die kolomwaarde nie NULL is nie.
  • <=>:  Die vergelykingsoperateur (anders as die = operateur) gee waar wanneer die twee waardes wat vergelyk word NULL is.

Voorwaardelike vergelykingsoperasies op NULL is spesiaal.Jy kan nie = NULL of ! =NULL vind NULL-waardes in die kolom.

In MySQL gee 'n vergelyking van 'n NULL-waarde met enige ander waarde (selfs NULL) altyd onwaar, dws NULL = NULL gee onwaar.

NULL word in MySQL hanteer deur die IS NULL en IS NIE NULL operateurs te gebruik nie.


Gebruik NULL-waarde in opdragprompt

In die volgende voorbeeld is die tabel chenweiliang_test_tbl in die databasis chenweiliang gestel om twee kolomme te bevat, chenweiliang_author en chenweiliang_count, en NULL-waardes is ingestel om in chenweiliang_count ingevoeg te word.

Instansie

Probeer die volgende voorbeelde:

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

In die volgende voorbeeld kan jy sien = en ! Die = operateur werk nie:

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

Om uit te vind of die chenweiliang_test_tbl-kolom in die datatabel NULL is, moet jyIS NULLIS NIE NULL, die volgende voorbeeld:

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

Hanteer NULL-waardes met PHP-skrip

In die PHP-skrip kan jy die if...else-stelling gebruik om te verwerk of die veranderlike leeg is en 'n ooreenstemmende voorwaardelike stelling genereer.

In die volgende voorbeeld stel PHP die $chenweiliang_count-veranderlike en gebruik dan daardie veranderlike om met die chenweiliang_count-veld in die datatabel te vergelyk:

MySQL BESTEL PER toets:

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

 

Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "Hoe hanteer MySQL-databasis nie-nulwaarde-navrae? MySQL is nie 'n null select statement nie" om jou te help.

Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-491.html

Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!

🔔 Wees die eerste om die waardevolle "ChatGPT Content Marketing AI Tool Usage Guide" in die kanaal se topgids te kry! 🌟
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!

 

发表 评论

U e-posadres sal nie gepubliseer word nie. Vereiste velde word gebruik * Etiket

blaai na bo