כיצד מסד הנתונים של MySQL מטפל בשאילתות ללא ערך ריק? MySQL אינה הצהרת בחירה null

מסד נתונים של MySQLכיצד לטפל בשאילתות ללא ערך ריק?MySQL אינו משפט בחירה null

טיפול אפס ב-MySQL

אנחנו כבר יודעים ש-MySQL משתמש בפקודה SQL SELECT ובסעיף WHERE כדי לקרוא את הנתונים בטבלת הנתונים, אך כאשר שדה תנאי השאילתה שסופק הוא NULL, ייתכן שהפקודה לא תפעל כראוי.

כדי להתמודד עם מצב זה, MySQL מספקת שלושה מפעילים עיקריים:

  • הוא NULL:אופרטור זה מחזיר אמת כאשר ערך העמודה הוא NULL.
  • אינו NULL:האופרטור מחזיר אמת כאשר ערך העמודה אינו NULL.
  • <=>:  אופרטור ההשוואה (בניגוד לאופרטור =) מחזיר אמת כאשר שני הערכים המושוים הם NULL.

פעולות השוואה מותנית ב-NULL הן מיוחדות.אתה לא יכול להשתמש = NULL או ! =NULL מוצא ערכי NULL בעמודה.

ב-MySQL, השוואה של ערך NULL עם כל ערך אחר (אפילו NULL) תמיד מחזירה false, כלומר NULL = NULL מחזירה false.

NULL מטופל ב-MySQL באמצעות האופרטורים IS NULL ו-IS NOT NULL.


השתמש בערך NULL בשורת הפקודה

בדוגמה הבאה, הטבלה chenweiliang_test_tbl במסד הנתונים chenweiliang מוגדרת להכיל שתי עמודות, 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 秒) 

טיפול בערכי NULL עם סקריפט PHP

בסקריפט PHP, אתה יכול להשתמש במשפט if...else כדי לעבד אם המשתנה ריק וליצור משפט מותנה תואם.

בדוגמה הבאה PHP מגדירה את המשתנה $chenweiliang_count ולאחר מכן משתמשת במשתנה זה כדי להשוות עם השדה chenweiliang_count בטבלת הנתונים:

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 בלוג ( https://www.chenweiliang.com/ ) shared "כיצד מסד הנתונים של MySQL מטפל בשאילתות ללא ערך אפס? MySQL אינו null select statement" כדי לעזור לך.

מוזמנים לשתף את הקישור של מאמר זה:https://www.chenweiliang.com/cwl-491.html

ברוכים הבאים לערוץ הטלגרם של הבלוג של Chen Weiliang כדי לקבל את העדכונים האחרונים!

🔔 היה הראשון לקבל את "מדריך השימוש בכלי AI של ChatGPT Content Marketing" בספרייה העליונה של הערוץ! 🌟
📚 המדריך הזה מכיל ערך עצום, 🌟זו הזדמנות נדירה, אל תפספסו אותה! ⏰⌛💨
שתפו ותעשו לייק אם בא לכם!
השיתוף והלייקים שלך הם המוטיבציה המתמשכת שלנו!

 

发表 评论

כתובת האימייל שלך לא תפורסם. 必填 项 已 用 * תווית

גלול למעלה