Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách hàm INSTR () hoạt động trong MySQL

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để giải quyết vấn đề không tương thích với sql_mode =only_full_group_by trong laravel eloquent?

  2. Chuỗi được phân tách bằng dấu phẩy trong MySQL thành bảng tạm thời

  3. MySQL - Lấy số hàng khi chọn

  4. Nguyên nhân gây ra lỗi MySQL 2014 Không thể thực thi truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động

  5. mã hóa ký tự lạ của dữ liệu được lưu trữ, tập lệnh cũ hiển thị chúng tốt, tập lệnh mới thì không