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

MariaDB SUBSTR () Giải thích

Trong MariaDB, SUBSTR() là từ đồng nghĩa với SUBSTRING() .

Đây là một hàm chuỗi tích hợp trả về một chuỗi con từ một chuỗi đã cho.

Nó 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:

SUBSTR(str,pos), 
SUBSTR(str FROM pos), 
SUBSTR(str,pos,len),
SUBSTR(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 SUBSTR('Good doggy', 6);

Kết quả:

+-------------------------+
| SUBSTR('Good doggy', 6) |
+-------------------------+
| doggy                   |
+-------------------------+

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

SELECT SUBSTR('Good doggy' FROM 6);

Kết quả:

+-----------------------------+
| SUBSTR('Good doggy' FROM 6) |
+-----------------------------+
| doggy                       |
+-----------------------------+

Độ 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 SUBSTR('Good doggy', 6, 3);

Kết quả:

+----------------------------+
| SUBSTR('Good doggy', 6, 3) |
+----------------------------+
| dog                        |
+----------------------------+

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

SELECT SUBSTR('Good doggy' FROM 6 FOR 3);

Kết quả:

+-----------------------------------+
| SUBSTR('Good doggy' FROM 6 FOR 3) |
+-----------------------------------+
| dog                               |
+-----------------------------------+

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 SUBSTR('Good doggy', -5);

Kết quả:

+--------------------------+
| SUBSTR('Good doggy', -5) |
+--------------------------+
| doggy                    |
+--------------------------+

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 SUBSTR('Good doggy' FROM -5 FOR 3);

Kết quả:

+------------------------------------+
| SUBSTR('Good doggy' FROM -5 FOR 3) |
+------------------------------------+
| dog                                |
+------------------------------------+

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 
    SUBSTR('Good doggy', 0) AS "0",
    SUBSTR('Good doggy', 1) AS "1";

Kết quả:

+------------+------------+
| 0          | 1          |
+------------+------------+
| Good doggy | Good doggy |
+------------+------------+

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

SET SQL_MODE=DEFAULT;
SELECT 
    SUBSTR('Good doggy', 0) AS "0",
    SUBSTR('Good doggy', 1) AS "1";

Kết quả:

+------+------------+
| 0    | 1          |
+------+------------+
|      | Good doggy |
+------+------------+

Đối số rỗng

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

SELECT 
    SUBSTR(null, 3, 3),
    SUBSTR('Doggy', null, 3),
    SUBSTR('Doggy', 3, null),
    SUBSTR(null, null, null);

Kết quả:

+--------------------+--------------------------+--------------------------+--------------------------+
| SUBSTR(null, 3, 3) | SUBSTR('Doggy', null, 3) | SUBSTR('Doggy', 3, null) | SUBSTR(null, null, null) |
+--------------------+--------------------------+--------------------------+--------------------------+
| NULL               | NULL                     | NULL                     | NULL                     |
+--------------------+--------------------------+--------------------------+--------------------------+

Thiếu đối số

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

SELECT SUBSTR();

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. Sử dụng plugin kiểm tra MariaDB để bảo mật cơ sở dữ liệu

  2. Khắc phục:“‘ Ngôn ngữ ’bảng không xác định trong information_schema” trong MariaDB

  3. Hiển thị đối chiếu trong MariaDB

  4. Triển khai bản sao MySQL Multicloud an toàn trên AWS và GCP với VPN

  5. Cách UTC_TIME () hoạt động trong MariaDB