MySQL bao gồm một FIELD()
và một FIND_IN_SET()
hàm cả hai đều trả về vị trí của một chuỗi trong danh sách. Tuy nhiên, các chức năng này hoạt động hơi khác nhau.
Sự khác biệt chính giữa hai chức năng này là:
-
FIND_IN_SET()
trả về vị trí chỉ mục của một chuỗi trong danh sách chuỗi. -
FIELD()
trả về vị trí chỉ mục của một chuỗi trong danh sách các đối số.
Vì vậy, một hàm tìm kiếm một danh sách chuỗi và hàm khác tìm kiếm một danh sách các đối số .
Cú pháp
Trước tiên, hãy xem cú pháp của hai hàm:
FIELD ()
Cú pháp cho FIELD()
hàm như sau:
FIELD(str,str1,str2,str3,...)
Điều này bao gồm một đối số ban đầu, theo sau là nhiều đối số tiếp theo. Các đối số tiếp theo là những gì được tìm kiếm - tuy nhiên có rất nhiều đối số trong số đó.
FIND_IN_SET ()
Cú pháp cho FIND_IN_SET()
hàm như sau:
FIND_IN_SET(str,strlist)
Điều này bao gồm một đối số ban đầu, tiếp theo là một đối số khác. Đối số thứ hai chứa danh sách các chuỗi được tìm kiếm.
Ví dụ
FIELD ()
Đây là một ví dụ về FIELD()
chức năng đang hoạt động:
SELECT FIELD('horse', 'Cat','Dog','Horse') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 3 | +--------+
FIND_IN_SET ()
Và đây là cách FIND_IN_SET()
hàm sẽ được xây dựng để nhận được cùng một kết quả:
SELECT FIND_IN_SET('horse', 'Cat,Dog,Horse') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 3 | +--------+