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

Cách hoạt động của hàm POSITION () trong MySQL

Trong MySQL, POSITION() 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 chuỗi.

Hàm này thực sự là một từ đồng nghĩa với LOCATE() , nhưng với một cú pháp hơi khác. LOCATE() chức năng cũng có chức năng bổ sung, trong đó nó cho phép bạn xác định vị trí bắt đầu cho tìm kiếm của bạn.

Cú pháp

Cú pháp cơ bản như sau:

POSITION(substr IN str)

Ở đâu substr là chuỗi con và str là chuỗi.

Ví dụ 1 - Cách sử dụng cơ bản

Kết quả
SELECT POSITION('Cat' IN 'The Cat') Result;

Kết quả:

+--------+
| Result |
+--------+
|      5 |
+--------+

Ví dụ 2 - Phân biệt chữ hoa chữ thường

POSITION() hàm là multibyte an toàn và chỉ phân biệt chữ hoa chữ thường nếu ít nhất một đối số là chuỗi nhị phân.

Vì vậy, ví dụ sau không phân biệt chữ hoa chữ thường:

SELECT POSITION('Cat' IN 'The cat') Result;

Kết quả:

+--------+
| Result |
+--------+
|      5 |
+--------+

Ví dụ 3 - Không phù hợp

Hàm trả về 0 nếu chuỗi con không được tìm thấy trong chuỗi:

SELECT POSITION('Dog' IN 'The cat') Result;

Kết quả:

+--------+
| Result |
+--------+
|      0 |
+--------+

Ví dụ 4 - Chuỗi con được nhúng

Hãy cẩn thận khi chọn chuỗi con. Nếu nó là một phần của một từ khác, bạn có thể nhận được một dương tính giả:

SELECT POSITION('Cat' IN 'Good Catch!') Result;

Kết quả:

+--------+
| Result |
+--------+
|      6 |
+--------+

Nếu bạn chỉ tìm kiếm con mèo , động vật, đây sẽ là một dương tính giả.

Ví dụ 5 - Chỉ xuất hiện lần đầu

Hãy nhớ rằng, hàm này chỉ trả về vị trí của đầu tiên sự xuất hiện của chuỗi con. Mọi lần xuất hiện tiếp theo đều bị bỏ qua:

SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;

Kết quả:

+--------+
| Result |
+--------+
|      4 |
+--------+

Ví dụ 6 - Đối số NULL

Nếu bất kỳ đối số nào là NULL , kết quả là NULL :

SELECT 
  POSITION('Cat' IN NULL) 'Result 1',
  POSITION(NULL IN 'The Cat') 'Result 2';

Kết quả:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|     NULL |     NULL |
+----------+----------+

Như đã đề cập, bạn cũng có thể sử dụng LOCATE() , cho phép bạn xác định vị trí bắt đầu cho tìm kiếm của mình.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp TẠO BẢNG SQL - Được DBMS liệt kê

  2. cách lấy id chèn cuối cùng sau khi chèn truy vấn trong bản ghi hoạt động codeigniter

  3. Lỗi 1022 - Không thể ghi; sao chép chìa khóa trong bảng

  4. Các kết nối máy chủ MySQL của tôi có được mã hóa và an toàn không?

  5. Cách dễ nhất để liên kết xác minh email PHP