Latest web development tutorials

การประมวลผลค่า MySQL โมฆะ

เรารู้อยู่แล้ว MySQL โดยใช้คำสั่ง SQL เลือกที่มีคำสั่ง WHERE ในการอ่านข้อมูลในตารางข้อมูล แต่ทุ่งนากับเกณฑ์การค้นหาที่มีให้เมื่อโมฆะคำสั่งอาจไม่ทำงานอย่างถูกต้องเมื่อ

ที่จะจัดการกับกรณีนี้, MySQL ให้สามประกอบการรายใหญ่:

  • เป็นโมฆะ: เมื่อค่าของคอลัมน์เป็นโมฆะผู้ประกอบการที่ผลตอบแทนจริง
  • ไม่ใช่ NULL: เมื่อค่าของคอลัมน์ที่ไม่เป็นโมฆะ, ผู้ประกอบการผลตอบแทนจริง
  • ดำเนินการเปรียบเทียบ (= แตกต่างจากผู้ประกอบการ) และผลตอบแทนจริงเมื่อเปรียบเทียบทั้งสองค่าเป็นโมฆะ: <=>

เกี่ยวกับการดำเนินงานเป็นโมฆะเปรียบเทียบสภาพเป็นพิเศษ คุณไม่สามารถใช้ = โมฆะหรือ! = NULL หาค่าเป็นศูนย์ในคอลัมน์

ใน MySQL, ค่า NULL เปรียบเทียบกับค่าอื่น ๆ (แม้จะเป็นโมฆะ) เสมอกลับเท็จที่เป็นโมฆะ = NULL กลับเท็จ

จัดการโมฆะ MySQL ใช้เป็นโมฆะและไม่ได้เป็นผู้ประกอบการเป็นโมฆะ


ค่าโมฆะในพร้อมรับคำสั่ง

ตัวอย่างต่อไปนี้อนุมานว่าฐานข้อมูล 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 ไม่ว่าจะเป็นคอลัมน์ที่เป็นโมฆะคุณต้องใช้เป็นโมฆะและไม่ได้เป็นโมฆะตัวอย่างต่อไปนี้:

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 ค่า NULL การประมวลผลสคริปต์

คริป 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);
?>