Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ผลกระทบต่อผลลัพธ์ MySQL เมื่อมี NULL ผสมในรายการอาร์กิวเมนต์ของ FIELD()

จะมีการเปลี่ยนแปลงอย่างมีนัยสำคัญในผลลัพธ์ หากมีการผสม NULL และค่าอื่นๆ ในรายการสตริงที่ส่งเป็นอาร์กิวเมนต์ในฟังก์ชัน FIELD() ตัวอย่างต่อไปนี้จะสาธิต:

ตัวอย่าง

mysql> SELECT FIELD('good', 'Ram', 'is', 'good', 'boy');
+---------------------------------------+
| FIELD('good', 'Ram', 'is', 'good', 'boy') |
+---------------------------------------+
| 3                                     |
+---------------------------------------+
1 row in set (0.00 sec)

จากผลลัพธ์ข้างต้น ดัชนีของสตริงค้นหา 'good' คือ 3 ตอนนี้ หากเพิ่ม NULL ลงในรายการสตริง จะมีการเปลี่ยนแปลงอย่างมีนัยสำคัญดังนี้:

mysql> SELECT FIELD('good', 'Ram', 'is', NULL, 'good', 'boy');
+---------------------------------------------+
| FIELD('good', 'Ram', 'is', NULL, 'good', 'boy') |
+---------------------------------------------+
| 4                                           |
+---------------------------------------------+
1 row in set (0.00 sec)

หมายความว่า MySQL จะเปรียบเทียบสตริงค้นหากับ NULL ด้วยเช่นกัน