Latest web development tutorials

معالجة قيمة الخلية فارغة

ونحن نعلم بالفعل الخلية باستخدام الأمر SQL SELECT مع جملة WHERE لقراءة البيانات في جدول البيانات، ولكن مجالات معايير الاستعلام قدم عند فارغة، الأمر قد لا تعمل بشكل صحيح عند.

للتعامل مع هذه الحالة، يوفر الخلية ثلاث شركات رئيسية هي:

  • IS NULL: عندما تكون قيمة العمود فارغة، المشغل يعود صحيحا.
  • IS NOT NULL: عندما تكون قيمة العمود ليست فارغة، المشغل يعود صحيحا.
  • <=>: عوامل المقارنة (= مختلفة من المشغل) وإرجاع صحيح عند مقارنة القيمة الثانية هي فارغة.

حول فارغة عملية مقارنة الشرط خاصة. لا يمكنك استخدام = NULL أو! = NULL عثور على قيم فارغة في العمود.

في الخلية، قيم فارغة مقارنة مع أي قيمة أخرى (حتى NULL) يعود دائما كاذبة، وهذا هو، NULL = NULL ترجع كاذبة.

الخلية مناولة فارغة باستخدام باطل وIS NOT NULL المشغل.


قيم فارغة في موجه الأوامر

المثال التالي يفترض أن قاعدة البيانات w3big الجداول tcount_tbl تحتوي على اثنين w3big_author وw3big_count، w3big_count تعيين قيم فارغة إدراج.

أمثلة

جرب الأمثلة التالية:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use w3big;
Database changed
mysql> create table tcount_tbl
    -> (
    -> w3big_author varchar(40) NOT NULL,
    -> w3big_count  INT
    -> );
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO tcount_tbl
    -> (w3big_author, w3big_count) values ('mahran', 20);
mysql> INSERT INTO tcount_tbl
    -> (w3big_author, w3big_count) values ('mahnaz', NULL);
mysql> INSERT INTO tcount_tbl
    -> (w3big_author, w3big_count) values ('Jen', NULL);
mysql> INSERT INTO tcount_tbl
    -> (w3big_author, w3big_count) values ('Gill', 20);

mysql> SELECT * from tcount_tbl;
+-----------------+----------------+
| w3big_author | w3big_count |
+-----------------+----------------+
| mahran          |             20 |
| mahnaz          |           NULL |
| Jen             |           NULL |
| Gill            |             20 |
+-----------------+----------------+
4 rows in set (0.00 sec)

mysql>

المثال التالي يمكنك أن ترى = و = لا يعمل المشغل !:

mysql> SELECT * FROM tcount_tbl WHERE w3big_count = NULL;
Empty set (0.00 sec)
mysql> SELECT * FROM tcount_tbl WHERE w3big_count != NULL;
Empty set (0.01 sec)

العثور على جدول البيانات w3big_count ما إذا كان العمود فارغة، يجب عليك استخدام لاغيا وغير NULL، الأمثلة التالية:

mysql> SELECT * FROM tcount_tbl 
    -> WHERE w3big_count IS NULL;
+-----------------+----------------+
| w3big_author | w3big_count |
+-----------------+----------------+
| mahnaz          |           NULL |
| Jen             |           NULL |
+-----------------+----------------+
2 rows in set (0.00 sec)
mysql> SELECT * from tcount_tbl 
    -> WHERE w3big_count IS NOT NULL;
+-----------------+----------------+
| w3big_author | w3big_count |
+-----------------+----------------+
| mahran          |             20 |
| Gill            |             20 |
+-----------------+----------------+
2 rows in set (0.00 sec)

استخدام PHP معالجة البرنامج النصي قيمة فارغة

مخطوطات PHP يمكنك إذا ... بيان آخر للتعامل مع إذا متغير فارغ، ويولد عبارة شرطية المقابلة.

مجموعة الأمثلة التالية $ w3big_count PHP متغير، ثم استخدم المتغير مع جدول البيانات w3big_count حقول المقارنة:

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
if( isset($w3big_count ))
{
   $sql = 'SELECT w3big_author, w3big_count
           FROM  tcount_tbl
           WHERE w3big_count = $w3big_count';
}
else
{
   $sql = 'SELECT w3big_author, w3big_count
           FROM  tcount_tbl
           WHERE w3big_count IS $w3big_count';
}

mysql_select_db('w3big');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "Author:{$row['w3big_author']}  <br> ".
         "Count: {$row['w3big_count']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>