Trong MariaDB, INSTR()
là một hàm chuỗi tích hợp 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 khác.
INSTR()
tương tự với LOCATE()
, ngoại trừ LOCATE()
đó cung cấp tùy chọn chỉ định vị trí bắt đầu cho tìm kiếm. Ngoài ra, thứ tự đối số được đảo ngược giữa hai hàm này.
Cú pháp
Cú pháp như sau:
INSTR(str,substr)
Ở đâu str
là chuỗi, substr
là chuỗi con cần tìm.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT INSTR('The hot sun', 'hot');
Kết quả:
+ ----------------------------- + | INSTR ('Mặt trời nóng', 'nóng') | + ----------------------------- + | 5 | + ----------------------------- +
Không phân biệt chữ hoa chữ thường
INSTR()
thực hiện tìm kiếm không phân biệt chữ hoa chữ thường:
SELECT INSTR('The hot sun', 'HOT');
Kết quả:
+ ----------------------------- + | INSTR ('Nắng nóng', 'HOT') | + ----------------------------- + | 5 | + ----------------------------- +
Nhiều lần xuất hiện
Nếu chuỗi con xảy ra nhiều lần, chỉ vị trí của chuỗi đầu tiên được trả về:
SELECT INSTR('The hot sun is really hot', 'hot');
Kết quả:
+ ------------------------------------------- + | INSTR ('Nắng nóng thật là nóng', 'nóng') | + --------------------------------- ---------- + | 5 | + ------------------------------------------- +Khớp một phần
Nếu chuỗi con là một phần của một từ lớn hơn, thì nó vẫn là một kết quả khớp:
SELECT INSTR('The hottest sun', 'hot');
Kết quả:
+ --------------------------------- + | INSTR ('Mặt trời nóng nhất', 'nóng') | + --------------------------------- + | 5 | + --------------------------------- +Nhưng nếu chuỗi chỉ là một phần của chuỗi con, thì đó không phải là một chuỗi khớp:
SELECT INSTR('The hot sun', 'hottest');
Kết quả:
+ --------------------------------- + | INSTR ('Mặt trời nóng', 'nóng nhất') | + --------------------------------- + | 0 | + --------------------------------- +Dấu cách
Ký tự khoảng trắng vẫn là một chuỗi, vì vậy chúng tôi có thể bao gồm khoảng trắng trong chuỗi con, ngay cả khi đó là ký tự duy nhất:
SELECT INSTR('The hot sun', ' ');
Kết quả:
+ --------------------------- + | INSTR ('Mặt trời nóng', '') | + --------------------------- + | 4 | + --------------------------- +Chuỗi trống
Dưới đây là những gì sẽ xảy ra khi chuỗi con là một chuỗi rỗng:
SELECT INSTR('The hot sun', ' ');
Kết quả:
+ -------------------------- + | INSTR ('Nắng nóng', '') | + -------------------------- + | 1 | + -------------------------- +Không phù hợp
Nếu không tìm thấy chuỗi con trong chuỗi, hãy
INSTR()
trả về0
:SELECT INSTR('The hot sun', 'cold');
Kết quả:
+ ------------------------------ + | INSTR ('Nắng nóng', 'lạnh') | + ------------------------------ + | 0 | + ------------------------------ +Đối số rỗng
Cung cấp
null
đối với bất kỳ đối số nào dẫn đếnnull
:SELECT INSTR('The hot sun', null), INSTR(null, 'hot');
Kết quả:
+ ---------------------------- + ----------------- --- + | INSTR ('Mặt trời nóng bức', null) | INSTR (null, 'hot') | + ---------------------------- + ----------- --------- + | NULL | NULL | + ---------------------------- + ------------------ - +Cung cấp số lượng lập luận sai
Gọi
INSTR()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào dẫn đến lỗi:SELECT INSTR('hot');
Kết quả:
ERROR 1582 (42000):Số lượng tham số không chính xác trong lệnh gọi hàm gốc 'INSTR'