Artikel Directory
MySQL databaseHvordan håndterer man forespørgsler uden nulværdi?MySQL er ikke null select-sætning
Nul håndtering i MySQL
Vi ved allerede, at MySQL bruger SQL SELECT-kommandoen og WHERE-sætningen til at læse dataene i datatabellen, men når forespørgselsbetingelsesfeltet er NULL, fungerer kommandoen muligvis ikke korrekt.
For at håndtere denne situation tilbyder MySQL tre store operatører:
- ER NULL:Denne operator returnerer sand, når kolonneværdien er NULL.
- ER IKKE NULL:Operatoren returnerer sand, når kolonneværdien ikke er NULL.
- <=>: Sammenligningsoperatoren (i modsætning til = operatoren) returnerer sand, når de to sammenlignede værdier er NULL.
Betingede sammenligningsoperationer på NULL er specielle.Du kan ikke bruge = NULL eller ! =NULL finder NULL-værdier i kolonnen.
I MySQL returnerer sammenligning af en NULL-værdi med enhver anden værdi (selv NULL) altid falsk, dvs. NULL = NULL returnerer falsk.
NULL håndteres i MySQL ved hjælp af IS NULL og IS NOT NULL operatorerne.
Brug NULL-værdien i kommandoprompten
I det følgende eksempel er tabellen chenweiliang_test_tbl i databasen chenweiliang indstillet til at indeholde to kolonner, chenweiliang_author og chenweiliang_count, og NULL-værdier er indstillet til at blive indsat i chenweiliang_count.
Instans
Prøv følgende eksempler:
Opret datatabel 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 秒)
I det følgende eksempel kan du se = og ! Operatoren = virker ikke:
mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ; 空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ; 空集(0.01 秒)
For at finde ud af, om kolonnen chenweiliang_test_tbl i datatabellen er NULL, skal du brugeER NULLOgER IKKE NULL, følgende eksempel:
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 秒)
Håndtering af NULL-værdier med PHP-script
I PHP-scriptet kan du bruge if...else-sætningen til at behandle om variablen er tom og generere en tilsvarende betinget sætning.
I det følgende eksempel indstiller PHP variablen $chenweiliang_count og bruger derefter denne variabel til at sammenligne med chenweiliang_count-feltet i datatabellen:
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 );
?>
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) delt "Hvordan håndterer MySQL-databasen forespørgsler uden nulværdi? MySQL er ikke null select statement" for at hjælpe dig.
Velkommen til at dele linket til denne artikel:https://www.chenweiliang.com/cwl-491.html
For at låse op for flere skjulte tricks🔑, velkommen til at blive en del af vores Telegram-kanal!
Del og like hvis du kan lide det! Dine delinger og likes er vores fortsatte motivation!