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

ใน MySQL ฟังก์ชัน FIELD() แตกต่างจากฟังก์ชัน FIND_IN_SET() อย่างไร


อย่างที่เราทราบ ฟังก์ชันทั้งสองถูกใช้เพื่อค้นหาสตริงจากอาร์กิวเมนต์ที่ให้ไว้ แต่มีข้อแตกต่างที่สำคัญบางประการดังนี้ −

FIND_IN_SET() − ฟังก์ชั่นใช้รายการสตริงที่ตัวเองเป็นสตริงที่มีสตริงย่อยคั่นด้วยเครื่องหมายจุลภาค ในขณะที่ฟังก์ชัน FIELD() มีรายการสตริงต่างๆ ซึ่งจะค้นหาหมายเลขดัชนีของสตริง หากมี ซึ่งจะทำการค้นหา

FIND_IN_SET() − ฟังก์ชันส่งคืน NULL หากอาร์กิวเมนต์ใด ๆ เช่นสตริงการค้นหาหรือรายการสตริงเป็น NULL ในทางตรงกันข้าม ฟังก์ชัน FIELD() จะไม่คืนค่า NULL แต่จะคืนค่า 0 หากสตริงการค้นหาเป็น NULL

ตัวอย่าง

mysql> Select FIND_IN_SET(NULL,'Ram is a good boy') AS Result;

+--------+
| Result |
+--------+
| NULL   |
+--------+

1 row in set (0.00 sec)

mysql> SELECT FIND_IN_SET('RAM',NULL)AS RESULT;

+--------+
| RESULT |
+--------+
| NULL   |
+--------+

1 row in set (0.00 sec)

mysql> Select FIELD(NULL,'Ram','is','good','boy');

+-------------------------------------+
| FIELD(NULL,'Ram','is','good','boy') |
+-------------------------------------+
|                                   0 |
+-------------------------------------+

1 row in set (0.00 sec)