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