បញ្ជីអត្ថបទ
មូលដ្ឋានទិន្នន័យ MySQLតើធ្វើដូចម្តេចដើម្បីដោះស្រាយសំណួរតម្លៃដែលមិនមែនជាមោឃៈ?MySQL មិនមែនជាសេចក្តីថ្លែងការណ៍ជ្រើសរើសទទេ
ការចាត់ចែង Null នៅក្នុង MySQL
យើងដឹងរួចហើយថា MySQL ប្រើពាក្យបញ្ជា SQL SELECT និងឃ្លា WHERE ដើម្បីអានទិន្នន័យក្នុងតារាងទិន្នន័យ ប៉ុន្តែនៅពេលដែលវាលលក្ខខណ្ឌសំណួរដែលបានផ្តល់គឺ NULL ពាក្យបញ្ជាអាចមិនដំណើរការត្រឹមត្រូវ។
ដើម្បីដោះស្រាយស្ថានភាពនេះ MySQL ផ្តល់នូវប្រតិបត្តិករសំខាន់ៗចំនួនបី៖
- ទទេ៖ប្រតិបត្តិករនេះត្រឡប់ពិតនៅពេលដែលតម្លៃជួរឈរគឺ NULL ។
- មិនមែនជា NULL៖ប្រតិបត្តិករត្រឡប់ពិតនៅពេលដែលតម្លៃជួរឈរមិនមែនជា NULL ។
- <=>៖ ប្រតិបត្តិករប្រៀបធៀប (មិនដូចសញ្ញាប្រមាណវិធី =) ត្រឡប់ពិតនៅពេលតម្លៃពីរដែលបានប្រៀបធៀបគឺ NULL ។
ប្រតិបត្តិការប្រៀបធៀបតាមលក្ខខណ្ឌនៅលើ NULL គឺពិសេស។អ្នកមិនអាចប្រើ = NULL ឬ ! =NULL រកឃើញតម្លៃ NULL ក្នុងជួរឈរ ។
នៅក្នុង MySQL ការប្រៀបធៀបតម្លៃ NULL ជាមួយតម្លៃផ្សេងទៀត (សូម្បីតែ NULL) តែងតែត្រឡប់មិនពិត ពោលគឺ NULL = NULL ត្រឡប់មិនពិត។
NULL ត្រូវបានគ្រប់គ្រងនៅក្នុង MySQL ដោយប្រើ IS NULL និងមិនមែនជា NULL operators ។
ប្រើតម្លៃ 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和។មិនមែនជា 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 statement ដើម្បីដំណើរការថាតើ variable ទទេរ ហើយបង្កើតនូវ conditional statement ដែលត្រូវគ្នា។
ក្នុងឧទាហរណ៍ខាងក្រោម 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 Blog ( https://www.chenweiliang.com/ ) shared "តើមូលដ្ឋានទិន្នន័យ MySQL ដោះស្រាយសំណួរតម្លៃដែលមិនមែនជាមោឃៈយ៉ាងដូចម្តេច? MySQL មិនមែនជា null select statement" ដើម្បីជួយអ្នកទេ។
សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-491.html
សូមស្វាគមន៍មកកាន់ឆានែល Telegram នៃប្លុករបស់ Chen Weiliang ដើម្បីទទួលបានព័ត៌មានថ្មីៗចុងក្រោយបង្អស់!
📚 មគ្គុទ្ទេសក៍នេះមានតម្លៃមហាសាល 🌟នេះជាឱកាសដ៏កម្រ សូមកុំអូសរំលង! ⏰⌛💨
Share និង Like ប្រសិនបើអ្នកចូលចិត្ត!
ការចែករំលែក និងការចូលចិត្តរបស់អ្នកគឺជាការលើកទឹកចិត្តបន្តរបស់យើង!