Мақала анықтамалығы
MySQL деректер қорыНөлдік емес мән сұрауларын қалай өңдеуге болады?MySQL нөлдік таңдау операторы емес
MySQL-де нөлдік өңдеу
Деректер кестесіндегі деректерді оқу үшін MySQL SQL SELECT пәрменін және WHERE сөйлемін пайдаланатынын бұрыннан білеміз, бірақ берілген сұрау шартының өрісі NULL болғанда, пәрмен дұрыс жұмыс істемеуі мүмкін.
Бұл жағдайды шешу үшін MySQL үш негізгі операторды ұсынады:
- IS NULL:Бұл оператор баған мәні NULL болғанда шын мәнін қайтарады.
- НҰЛ ЕМЕС:Оператор баған мәні NULL емес болғанда true мәнін қайтарады.
- <=>: Салыстыру операторы (= операторынан айырмашылығы) салыстырылған екі мән NULL болғанда ақиқат мәнін қайтарады.
NULL бойынша шартты салыстыру операциялары ерекше.Сіз = NULL немесе пайдалана алмайсыз! =NULL бағандағы NULL мәндерін табады.
MySQL-де NULL мәнін кез келген басқа мәнмен (тіпті NULL) салыстыру әрқашан жалған мәнді қайтарады, яғни NULL = NULL жалған мәнді қайтарады.
NULL MySQL жүйесінде IS NULL және IS NULL емес операторлары арқылы өңделеді.
Пәрмен жолында NULL мәнін пайдаланыңыз
Келесі мысалда chenweiliang дерекқорындағы chenweiliang_test_tbl кестесі екі бағанды қамтитын етіп орнатылған, chenweiliang_author және chenweiliang_count және NULL мәндері chenweiliang_count ішіне кірістірілетін етіп орнатылған.
Дана
Келесі мысалдарды қолданып көріңіз:
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 秒)
Келесі мысалда сіз = және ! = операторы жұмыс істемейді:
mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ; 空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ; 空集(0.01 秒)
Деректер кестесіндегі chenweiliang_test_tbl бағанының NULL екенін білу үшін мынаны пайдалану керекIS NULL和ЕШҚАНСЫЗ, келесі мысал:
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 秒)
PHP сценарийімен NULL мәндерін өңдеу
РНР сценарийінде айнымалының бос екендігін өңдеу және сәйкес шартты мәлімдемені жасау үшін if...else операторын пайдалануға болады.
Келесі мысалда PHP $chenweiliang_count айнымалы мәнін орнатады, содан кейін бұл айнымалы мәнді деректер кестесіндегі chenweiliang_count өрісімен салыстыру үшін пайдаланады:
MySQL тесті бойынша ТАПСЫРЫС:
<?
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 блогы ( https://www.chenweiliang.com/ ) ортақ "MySQL дерекқоры нөлдік емес мән сұрауларын қалай өңдейді? Сізге көмектесу үшін MySQL нөлдік таңдау мәлімдемесі емес.
Осы мақаланың сілтемесін бөлісуге қош келдіңіз:https://www.chenweiliang.com/cwl-491.html
Көбірек жасырын трюктердің құлпын ашу үшін🔑 Telegram каналымызға қосылыңыз!
Бөлісу және ұнаса лайк! Сіздің бөлісулеріңіз бен лайктарыңыз біздің тұрақты мотивациямыз болып табылады!