Conas a láimhseálann bunachar sonraí MySQL fiosrúcháin luach neamh-nallach? Ní ráiteas roghnaithe ar neamhní é MySQL

Bunachar sonraí MySQL saor in aisce,Conas ceisteanna faoi luach neamhnithe a láimhseáil?MySQL nach ráiteas roghnaíoch ar neamhní é

Láimhseáil neamhnithe i MySQL

Tá a fhios againn cheana féin go n-úsáideann MySQL an t-ordú SQL SELECT agus an clásal WHERE chun na sonraí sa tábla sonraí a léamh, ach nuair is NULLComment an réimse coinníoll ceiste a sholáthraítear, seans nach n-oibreoidh an t-ordú i gceart.

Chun an cás seo a láimhseáil, soláthraíonn MySQL trí phríomhoibreoirí:

  • IS NULLACH:Filleann an t-oibreoir seo fíor nuair is NULLComment luach an cholúin.
  • NÍL NÍL:Filleann an t-oibreoir fíor nuair nach bhfuil luach an cholúin NULLComment.
  • <=>:  Filleann an t-oibreoir comparáide (murab ionann agus an t-oibreoir =) fíor nuair a bhíonn an dá luach i gcomparáid le NULL.

Tá oibríochtaí comparáide coinníollach ar NULL speisialta.Ní féidir leat = NULLComment nó ! Aimsíonn =NULL luachanna NULL sa cholún.

I MySQL, déantar comparáid idir luach NULL le haon luach eile (fiú NULLComment) i gcónaí bréagach, .i. NULLComment = Filleann NULLComment bréagach.

Déantar NULL a láimhseáil i MySQL ag baint úsáide as na hoibreoirí IS NULL agus NÍL NULL.


Úsáid luach NULL i ordú leid

Sa sampla seo a leanas, tá an tábla chenweiliang_test_tbl sa bhunachar sonraí chenweiliang socraithe chun dhá cholún a bheith ann, chenweiliang_author agus chenweiliang_count, agus socraítear luachanna NULL a chur isteach i chenweiliang_count.

sampla

Bain triail as na samplaí seo a leanas:

Cruthaigh tábla sonraí 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 秒) 

Sa sampla seo a leanas is féidir leat a fheiceáil = agus ! Ní oibríonn an = oibreoir:

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

Chun a fháil amach an bhfuil an colún chenweiliang_test_tbl sa tábla sonraí NULL, ní mór duit é a úsáidIS NULLNÍ NUA, an sampla seo a leanas:

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

Láimhseáil luachanna NULL le script PHP

Sa script PHP, is féidir leat an ráiteas más...eile a úsáid chun an athróg folamh a phróiseáil agus ráiteas coinníollach comhfhreagrach a ghiniúint.

Sa sampla seo a leanas socraíonn PHP an athróg $chenweiliang_count agus ansin úsáideann sé an athróg sin chun comparáid a dhéanamh leis an réimse chenweiliang_count sa tábla sonraí:

MySQL ORDÚ DE RÉIR tástála:

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

 

Tá súil agam Blag Chen Weiliang ( https://www.chenweiliang.com/ ) shared” Conas a láimhseálann bunachar sonraí MySQL fiosruithe luach neamh-null? Ní ráiteas roghnaithe ar neamhní é MySQL” chun cabhrú leat.

Fáilte romhat nasc an ailt seo a roinnt:https://www.chenweiliang.com/cwl-491.html

Chun níos mó cleasanna ceilte a dhíghlasáil🔑, fáilte romhat páirt a ghlacadh inár gcainéal Telegram!

Roinn agus maith más maith leat é! Is iad do chuid scaireanna agus rudaí is maith leat ár spreagadh leanúnach!

 

发表 评论

Ní fhoilseofar do sheoladh ríomhphoist. Úsáidtear réimsí riachtanacha * Lipéad

Scrollaigh go dtí an Barr