Kā MySQL datu bāze apstrādā vaicājumus, kas nav nulles vērtības? MySQL nav nulles atlases priekšraksts

MySQL datu bāzeKā apstrādāt vaicājumus ar nulles vērtību?MySQL nav nulles atlases priekšraksts

Null apstrāde MySQL

Mēs jau zinām, ka MySQL izmanto komandu SQL SELECT un klauzulu WHERE, lai nolasītu datus datu tabulā, taču, ja vaicājuma nosacījuma lauks ir NULL, komanda var nedarboties pareizi.

Lai risinātu šo situāciju, MySQL nodrošina trīs galvenos operatorus:

  • IR NULL:Šis operators atgriež patieso vērtību, ja kolonnas vērtība ir NULL.
  • NAV NULL:Operators atgriež patiesu, ja kolonnas vērtība nav NULL.
  • <=>:  Salīdzināšanas operators (atšķirībā no operatora =) atgriež patieso vērtību, ja abas salīdzinātās vērtības ir NULL.

Nosacītās salīdzināšanas darbības ar NULL ir īpašas.Jūs nevarat izmantot = NULL vai ! =NULL kolonnā atrod NULL vērtības.

Programmā MySQL NULL vērtības salīdzinājums ar jebkuru citu vērtību (pat NULL) vienmēr atgriež false, ti, NULL = NULL atgriež false.

NULL tiek apstrādāts MySQL, izmantojot operatorus IS NULL un IS NOT NULL.


Komandu uzvednē izmantojiet vērtību NULL

Nākamajā piemērā tabula chenweiliang_test_tbl datubāzē chenweiliang ir iestatīta tā, lai tajā būtu divas kolonnas, chenweiliang_author un chenweiliang_count, un NULL vērtības ir iestatītas ievietošanai chenweiliang_count.

Piemērs

Izmēģiniet tālāk norādītos piemērus.

Izveidot datu tabulu 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 秒) 

Nākamajā piemērā var redzēt = un ! = operators nedarbojas:

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

Lai noskaidrotu, vai datu tabulas kolonna chenweiliang_test_tbl ir NULL, ir jāizmantoIS NULLNĒ NULL, šāds piemērs:

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 vērtību apstrāde ar PHP skriptu

PHP skriptā varat izmantot priekšrakstu if...else, lai apstrādātu, vai mainīgais ir tukšs, un ģenerētu atbilstošu nosacījumu.

Nākamajā piemērā PHP iestata mainīgo $chenweiliang_count un pēc tam izmanto šo mainīgo, lai salīdzinātu ar lauku chenweiliang_count datu tabulā:

MySQL ORDER BY tests:

<?
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 emuārs ( https://www.chenweiliang.com/ ) kopīgots "Kā MySQL datu bāze apstrādā vaicājumus, kas nav nulles vērtības? MySQL nav nulles atlases priekšraksts", kas jums palīdzēs.

Laipni lūdzam kopīgot šī raksta saiti:https://www.chenweiliang.com/cwl-491.html

Laipni lūdzam Chen Weiliang emuāra Telegram kanālā, lai saņemtu jaunākos atjauninājumus!

🔔 Esiet pirmais, kas kanāla augšējā direktorijā iegūst vērtīgo "ChatGPT satura mārketinga AI rīka lietošanas ceļvedi"! 🌟
📚 Šajā rokasgrāmatā ir milzīga vērtība, 🌟Šī ir reta iespēja, nepalaidiet to garām! ⏰⌛💨
Dalies un patīk, ja patīk!
Jūsu kopīgošana un atzīmes Patīk ir mūsu nepārtraukta motivācija!

 

发表 评论

Jūsu e-pasta adrese netiks publicēta. 必填 项 已 用 * Etiķete

ritiniet uz augšu