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
Velkommen til Telegram-kanalen på Chen Weiliangs blog for at få de seneste opdateringer!
📚 Denne guide indeholder enorm værdi, 🌟Dette er en sjælden mulighed, gå ikke glip af det! ⏰⌛💨
Del og like hvis du har lyst!
Din deling og likes er vores kontinuerlige motivation!