Artikel Directory
MySQL-databaseHoe om te gaan met niet-null-waardequery's?MySQL is geen null select-instructie
Null-verwerking in MySQL
We weten al dat MySQL de SQL SELECT-opdracht en de WHERE-clausule gebruikt om de gegevens in de gegevenstabel te lezen, maar wanneer het opgegeven queryvoorwaardeveld NULL is, werkt de opdracht mogelijk niet goed.
Om met deze situatie om te gaan, biedt MySQL drie belangrijke operators:
- IS NIETS:Deze operator retourneert true wanneer de kolomwaarde NULL is.
- IS NIET NUL:De operator retourneert true wanneer de kolomwaarde niet NULL is.
- <=>: De vergelijkingsoperator (in tegenstelling tot de =-operator) retourneert true wanneer de twee vergeleken waarden NULL zijn.
Voorwaardelijke vergelijkingsbewerkingen op NULL zijn speciaal.U kunt = NULL of ! =NULL vindt NULL-waarden in de kolom.
In MySQL retourneert een vergelijking van een NULL-waarde met een andere waarde (zelfs NULL) altijd false, dwz NULL = NULL retourneert false.
NULL wordt verwerkt in MySQL met behulp van de operators IS NULL en IS NOT NULL.
Gebruik de NULL-waarde in de opdrachtprompt
In het volgende voorbeeld is de tabel chenweiliang_test_tbl in de database chenweiliang ingesteld om twee kolommen te bevatten, chenweiliang_author en chenweiliang_count, en NULL-waarden worden ingevoegd in chenweiliang_count.
Voorbeeld
Probeer de volgende voorbeelden:
Gegevenstabel maken 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 het volgende voorbeeld zie je = en ! De = operator werkt niet:
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 erachter te komen of de kolom chenweiliang_test_tbl in de gegevenstabel NULL is, moet u gebruikenIS NIETS和IS NIET NUL, het 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 秒)
NULL-waarden afhandelen met PHP-script
In het PHP-script kunt u de instructie if...else gebruiken om te verwerken of de variabele leeg is en een bijbehorende voorwaardelijke instructie te genereren.
In het volgende voorbeeld stelt PHP de variabele $chenweiliang_count in en gebruikt die variabele vervolgens om te vergelijken met het veld chenweiliang_count in de gegevenstabel:
MySQL ORDER BY-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 );
?>
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "Hoe verwerkt de MySQL-database niet-null-waardequery's? MySQL is geen null select statement" om u te helpen.
Welkom om de link van dit artikel te delen:https://www.chenweiliang.com/cwl-491.html
Om nog meer verborgen trucs🔑 te ontgrendelen, nodigen we je van harte uit om lid te worden van ons Telegram-kanaal!
Deel en like als je het leuk vindt! Jouw aandelen en likes zijn onze voortdurende motivatie!