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

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

Trong MariaDB, SUBSTRING() là một hàm chuỗi tích hợp trả về một chuỗi con từ một chuỗi đã cho.

SUBSTRING() yêu cầu ít nhất hai đối số; chuỗi và vị trí để trích xuất chuỗi con từ đó. Nó cũng chấp nhận đối số thứ ba tùy chọn cho phép bạn chỉ định thời lượng của chuỗi con.

Cú pháp

Cú pháp có các dạng sau:

SUBSTRING(str,pos), 
SUBSTRING(str FROM pos), 
SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)

Ở đâu str là chuỗi, pos là vị trí bắt đầu của chuỗi con và len là số ký tự cần trích xuất.

Hai biểu mẫu sử dụng FROM từ khóa là cú pháp SQL chuẩn.

Ví dụ

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

SELECT SUBSTRING('Big fat cat', 5);

Kết quả:

+-----------------------------+
| SUBSTRING('Big fat cat', 5) |
+-----------------------------+
| fat cat                     |
+-----------------------------+

Đây là ví dụ tương tự, nhưng sử dụng cú pháp SQL chuẩn:

SELECT SUBSTRING('Big fat cat' FROM 5);

Kết quả:

+---------------------------------+
| SUBSTRING('Big fat cat' FROM 5) |
+---------------------------------+
| fat cat                         |
+---------------------------------+

Độ dài chuỗi con

Dưới đây là một ví dụ chỉ định độ dài của chuỗi con cần trích xuất:

SELECT SUBSTRING('Big fat cat', 5, 3);

Kết quả:

+--------------------------------+
| SUBSTRING('Big fat cat', 5, 3) |
+--------------------------------+
| fat                            |
+--------------------------------+

Và đây nó đang sử dụng cú pháp SQL chuẩn:

SELECT SUBSTRING('Big fat cat' FROM 5 FOR 3);

Kết quả:

+---------------------------------------+
| SUBSTRING('Big fat cat' FROM 5 FOR 3) |
+---------------------------------------+
| fat                                   |
+---------------------------------------+

Vị trí phủ định

Việc chỉ định giá trị âm cho vị trí khiến vị trí bắt đầu được đếm ngược so với cuối chuỗi:

SELECT SUBSTRING('Big fat cat', -3);

Kết quả:

+------------------------------+
| SUBSTRING('Big fat cat', -3) |
+------------------------------+
| cat                          |
+------------------------------+

Một vị trí phủ định cũng có thể được sử dụng khi sử dụng cú pháp SQL chuẩn:

SELECT SUBSTRING('Big fat cat' FROM -7 FOR 3);

Kết quả:

+----------------------------------------+
| SUBSTRING('Big fat cat' FROM -7 FOR 3) |
+----------------------------------------+
| fat                                    |
+----------------------------------------+

Trong trường hợp này, tôi cũng đặt độ dài cho chuỗi con.

Chế độ Oracle

Khi ở chế độ Oracle, vị trí bắt đầu của 0 (không) được coi là 1 . Tuy nhiên, vị trí bắt đầu của 1 cũng được coi là 1 .

Điều này trái ngược với các chế độ khác, trong đó 0 sẽ trả về một chuỗi trống.

Ví dụ:

SET SQL_MODE=ORACLE;
SELECT 
    SUBSTRING('Big fat cat', 0) AS "0",
    SUBSTRING('Big fat cat', 1) AS "1";

Kết quả:

+-------------+-------------+
| 0           | 1           |
+-------------+-------------+
| Big fat cat | Big fat cat |
+-------------+-------------+

Đây là chế độ mặc định:

SET SQL_MODE=DEFAULT;
SELECT 
    SUBSTRING('Big fat cat', 0) AS "0",
    SUBSTRING('Big fat cat', 1) AS "1";

Kết quả:

+------+-------------+
| 0    | 1           |
+------+-------------+
|      | Big fat cat |
+------+-------------+

Đối số rỗng

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

SELECT 
    SUBSTRING(null, 3, 3),
    SUBSTRING('Coffee', null, 3),
    SUBSTRING('Coffee', 3, null),
    SUBSTRING(null, null, null);

Kết quả:

+-----------------------+------------------------------+------------------------------+-----------------------------+
| SUBSTRING(null, 3, 3) | SUBSTRING('Coffee', null, 3) | SUBSTRING('Coffee', 3, null) | SUBSTRING(null, null, null) |
+-----------------------+------------------------------+------------------------------+-----------------------------+
| NULL                  | NULL                         | NULL                         | NULL                        |
+-----------------------+------------------------------+------------------------------+-----------------------------+

Thiếu đối số

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

SELECT SUBSTRING();

Kết quả:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

  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 trên CentOS 8

  2. Kiểm tra tự động quá trình nâng cấp cho PXC / MariaDB Galera Cluster

  3. Các bước cần thực hiện nếu bạn gặp sự cố MySQL

  4. Cách kết nối các chương trình C ++ với MariaDB

  5. Chạy một cụm MariaDB Galera mà không có công cụ điều phối vùng chứa:Phần một