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

Cách hoạt động của SUBSTRING_INDEX () trong MariaDB

Trong MariaDB, SUBSTRING_INDEX() là một hàm chuỗi được tích hợp sẵn. Nó trả về một chuỗi con từ một chuỗi trước một số lần xuất hiện nhất định của dấu phân cách được chỉ định.

SUBSTRING_INDEX() yêu cầu ở ba đối số; chuỗi, dấu phân cách và số lượng (tức là số lần xuất hiện của dấu phân cách đó).

Cú pháp

Cú pháp như sau:

SUBSTRING_INDEX(str,delim,count)

Ở đâu str là chuỗi, delim là dấu phân cách và count là số lần xuất hiện của dấu phân cách đó để sử dụng để xác định chuỗi con sẽ trả về.

Nếu count là dương, mọi thứ ở bên trái của dấu phân cách cuối cùng (tính từ bên trái) đều được trả về. Nếu count là số âm, mọi thứ ở bên phải của dấu phân cách cuối cùng (tính từ bên phải) đều được trả về.

Ví dụ

Đây là một ví dụ cơ bản:

SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3);

Kết quả:

+-------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3) |
+-------------------------------------------------------+
| /users/homer                                          |
+-------------------------------------------------------+

Số lượng phủ định

Việc chỉ định một giá trị âm cho số lượng khiến nó được đếm ngược từ cuối chuỗi:

SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3);

Kết quả:

+--------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3) |
+--------------------------------------------------------+
| homer/docs/cat_vids                                    |
+--------------------------------------------------------+

Không tìm thấy dấu phân cách

Nếu dấu phân tách không tồn tại trong chuỗi, toàn bộ chuỗi được trả về:

SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3);

Kết quả:

+-------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3) |
+-------------------------------------------------------+
| /users/homer/docs/cat_vids                            |
+-------------------------------------------------------+

Đối số rỗng

Nếu bất kỳ (hoặc tất cả) đối số null , SUBSTRING_INDEX() hàm trả về null :

SELECT 
    SUBSTRING_INDEX(null, '/', 3) AS "1",
    SUBSTRING_INDEX('/users/homer/docs/cat_vids', null, 3) AS "2",
    SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', null) AS "3",
    SUBSTRING_INDEX(null, null, null) AS "4";

Kết quả:

+------+------+------+------+
| 1    | 2    | 3    | 4    |
+------+------+------+------+
| NULL | NULL | NULL | NULL |
+------+------+------+------+

Thiếu đối số

Gọi SUBSTRING_INDEX() mà không chuyển bất kỳ đối số nào dẫn đến lỗi:

SELECT SUBSTRING_INDEX();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'

  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ách cài đặt và bảo mật MariaDB 10 trong CentOS 6

  2. Nhân bản MySQL với ProxySQL trên Máy chủ WHM / cPanel:Phần một

  3. Cách liệt kê tất cả các thủ tục được lưu trữ trong MariaDB

  4. Cách ASCII () hoạt động trong MariaDB

  5. Bảo mật sao lưu MySQL:Hướng dẫn