دليل المادة
قاعدة بيانات MySQLكيفية التعامل مع استعلامات القيمة غير الفارغة؟MySQL ليست عبارة تحديد خالية
معالجة خالية في MySQL
نحن نعلم بالفعل أن MySQL تستخدم أمر SQL SELECT وعبارة WHERE لقراءة البيانات في جدول البيانات ، ولكن عندما يكون حقل شرط الاستعلام المقدم فارغًا ، فقد لا يعمل الأمر بشكل صحيح.
للتعامل مع هذا الموقف ، توفر MySQL ثلاثة مشغلين رئيسيين:
- باطل:يرجع هذا العامل صحيحًا عندما تكون قيمة العمود فارغة.
- هو ليس لاشيء:يُرجع عامل التشغيل صحيحًا عندما لا تكون قيمة العمود فارغة.
- <=>: يُرجع عامل المقارنة (على عكس عامل التشغيل =) صحيحًا عندما تكون القيمتان المقارنتان فارغتين.
عمليات المقارنة الشرطية على 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 في جدول البيانات فارغًا ، يجب عليك استخدامباطلوهو ليس لاشيء، المثال التالي:
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 النصي
في سكربت PHP ، يمكنك استخدام العبارة if ... else لمعالجة ما إذا كان المتغير فارغًا وإنشاء جملة شرطية مقابلة.
في المثال التالي ، تعيّن PHP المتغير $ chenweiliang_count ثم تستخدم هذا المتغير للمقارنة مع حقل chenweiliang_count في جدول البيانات:
اختبار MySQL ORDER BY:
<?
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!
مشاركة ومثل إذا كنت ترغب في ذلك! مشاركاتك وإعجاباتك هي حافزنا المستمر!