Trong MariaDB, FIELD()
là một hàm chuỗi được tích hợp sẵn trả về vị trí chỉ mục của chuỗi hoặc số khớp với mẫu được chỉ định.
Nó chấp nhận hai hoặc nhiều đối số. Đầu tiên là mẫu bạn muốn tìm kiếm. Tất cả các đối số tiếp theo là các chuỗi hoặc số để khớp với mẫu.
Cú pháp
Cú pháp như sau:
FIELD(pattern, str1[,str2,...])
Ở đâu pattern
là mẫu và str1[, str2,…]
đại diện cho các chuỗi hoặc số.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT FIELD('Green', 'Red', 'Green', 'Blue');
Kết quả:
+----------------------------------------+ | FIELD('Green', 'Red', 'Green', 'Blue') | +----------------------------------------+ | 2 | +----------------------------------------+
Trong trường hợp này, mẫu (Green
) xảy ra ở vị trí thứ hai, và vì vậy 2
được trả lại.
Phân biệt chữ hoa chữ thường
FIELD()
hàm coi các chuỗi là không phân biệt chữ hoa chữ thường.
Ví dụ:
SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');
Kết quả:
+---------------------------------------+ | FIELD('BLUE', 'Red', 'Green', 'Blue') | +---------------------------------------+ | 3 | +---------------------------------------+
Không phù hợp
Nếu không có kết quả phù hợp, 0
được trả lại.
Ví dụ:
SELECT FIELD('Go', 'Red', 'Green', 'Blue');
Kết quả:
+-------------------------------------+ | FIELD('Go', 'Red', 'Green', 'Blue') | +-------------------------------------+ | 0 | +-------------------------------------+
Số
Khi tất cả các đối số là số, chúng được coi là số. Nếu không, chúng sẽ được coi là gấp đôi.
Ví dụ:
SELECT FIELD(3, 40, 2, 18, 10, 3);
Kết quả:
+----------------------------+ | FIELD(3, 40, 2, 18, 10, 3) | +----------------------------+ | 5 | +----------------------------+
Nhiều Kết hợp
Nếu có nhiều kết quả phù hợp với mẫu, chỉ chỉ mục của mẫu đầu tiên được trả về:
SELECT FIELD(3, 40, 3, 18, 10, 3);
Kết quả:
+----------------------------+ | FIELD(3, 40, 3, 18, 10, 3) | +----------------------------+ | 2 | +----------------------------+
Chỉ định một mẫu Null
Cung cấp null
vì đối số đầu tiên dẫn đến 0
:
SELECT FIELD(null, 1, 2, 3);
Kết quả:
+----------------------+ | FIELD(null, 1, 2, 3) | +----------------------+ | 0 | +----------------------+
Chỉ cung cấp một đối số chuỗi
Việc cung cấp một đối số duy nhất để so khớp là hợp lệ:
SELECT FIELD(205, 205);
Kết quả:
+-----------------+ | FIELD(205, 205) | +-----------------+ | 1 | +-----------------+
Đối số đơn
Nhưng chỉ chuyển một đối số cho FIELD()
trả về một lỗi:
SELECT FIELD(205);
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'
Thiếu đối số
Gọi FIELD()
mà không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT FIELD();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'