INSTR()
hàm trả về vị trí của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi. Về cơ bản, nó thực hiện tương tự như cú pháp hai đối số của LOCATE()
hàm không (ngoại trừ thứ tự của các đối số bị đảo ngược).
Cú pháp
Cú pháp như sau:
INSTR(str,substr)
Ở đâu str
là chuỗi bạn muốn tìm kiếm và substr
là chuỗi con mà bạn đang tìm kiếm.
Ví dụ 1 - Cách sử dụng Cơ bản
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 10 | +--------+
Trong trường hợp này, chuỗi dogs
bắt đầu ở vị trí 10.
Ví dụ 2 - Không phân biệt chữ hoa chữ thường
Nó không phân biệt chữ hoa chữ thường:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Kết quả:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Ví dụ 3 - Đối sánh từng phần
Không quan trọng nếu cụm từ tìm kiếm của bạn chỉ đại diện cho một phần của từ, nó vẫn sẽ khớp (xét cho cùng, bạn chỉ đang tìm kiếm một chuỗi con trong một chuỗi):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 10 | +--------+
Dấu cách vẫn là một phần của chuỗi. Vì vậy, bạn có thể tìm kiếm không gian đầu tiên nếu bạn cần:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 5 | +--------+
Ví dụ 4 - Chỉ xuất hiện lần đầu
Hãy nhớ rằng, chỉ vị trí của lần xuất hiện đầu tiên được trả về:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 2 | +--------+
Ví dụ 5 - Khi không thể tìm thấy chuỗi con
Nếu không tìm thấy chuỗi con, kết quả là 0
được trả lại:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 0 | +--------+
Ví dụ 6 - Đếm tham số không chính xác
Nếu bạn bỏ qua bất kỳ thông số nào, bạn sẽ gặp lỗi:
SELECT INSTR('Cats and dogs like to run') AS Result;
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
Bạn cũng sẽ gặp lỗi nếu cung cấp quá nhiều thông số:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'