پایگاه داده MySQL چگونه پرس و جوهای غیر تهی را مدیریت می کند؟ MySQL دستور انتخاب null نیست

پایگاه داده MySQLچگونه پرس و جوهای غیر تهی را مدیریت کنیم؟خروجی دستور انتخاب null نیست

مدیریت تهی در MySQL

ما قبلاً می دانیم که MySQL از دستور SQL SELECT و عبارت WHERE برای خواندن داده ها در جدول داده استفاده می کند، اما وقتی فیلد شرط query ارائه شده NULL باشد، ممکن است دستور به درستی کار نکند.

برای مدیریت این وضعیت، MySQL سه عملگر اصلی را ارائه می دهد:

  • IS NULL:زمانی که مقدار ستون NULL باشد، این عملگر true را برمی گرداند.
  • NULL نیست:زمانی که مقدار ستون NULL نباشد عملگر true را برمی گرداند.
  • <=>:  عملگر مقایسه (برخلاف عملگر =) زمانی true را برمی گرداند که دو مقدار مقایسه شده 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 است، باید از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 تست:

<?
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 );
?>

 

وبلاگ امید چن ویلیانگ ( https://www.chenweiliang.com/ ) shared " پایگاه داده MySQL چگونه پرس و جوهای ارزش غیر تهی را مدیریت می کند؟ MySQL یک عبارت انتخاب تهی نیست» تا به شما کمک کند.

به اشتراک گذاری لینک این مقاله خوش آمدید:https://www.chenweiliang.com/cwl-491.html

به کانال تلگرام وبلاگ چن ویلیانگ خوش آمدید تا از آخرین به روز رسانی ها مطلع شوید!

🔔 اولین نفری باشید که "راهنمای استفاده از ابزار هوش مصنوعی بازاریابی محتوایی ChatGPT" را در فهرست بالای کانال دریافت می کنید! 🌟
📚 این راهنما حاوی ارزش بسیار زیادی است، 🌟این یک فرصت نادر است، آن را از دست ندهید! ⏰⌛💨
اگر دوست داشتید به اشتراک بگذارید و لایک کنید
اشتراک گذاری و لایک های شما انگیزه مستمر ما هستند!

 

发表 评论

آدرس ایمیل شما منتشر نخواهد شد. از زمینه های مورد نیاز استفاده می شود * 标注

به بالا بروید