Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tách phần bên trái chuỗi theo dấu phân cách trong MySQL

Lấy phần trái chuỗi trước dấu phân cách với SUBSTRING_INDEX()

Hàm SUBSTRING_INDEX(str, delim, count) trả về phần chuỗi trước dấu phân cách thứ count. Với count = 1 lấy phần bên trái dấu phân cách đầu tiên.

Cú pháp

SELECT SUBSTRING_INDEX(cotChuoi, 'dauPhanCach', 1) AS phanTrai
FROM tenBang;

Ví dụ minh họa

Tạo bảng LeftStringDemo:

CREATE TABLE LeftStringDemo (
    Id INT,
    Words VARCHAR(100)
);

Chèn dữ liệu có dấu ==:

INSERT INTO LeftStringDemo VALUES
(1, 'MySQL==6789'),
(2, 'Java==Object Oriented'),
(3, 'C Language==Procedural Programming'),
(4, 'PL/SQL==Structured Programming');

Truy vấn lấy phần trước ==:

SELECT Id, SUBSTRING_INDEX(Words, '==', 1) AS OnlyLeftHandSide
FROM LeftStringDemo;

Kết quả

+------+-----------------------+
| Id   | OnlyLeftHandSide      |
+------+-----------------------+
|    1 | MySQL                 |
|    2 | Java                  |
|    3 | C Language            |
|    4 | PL/SQL                |
+------+-----------------------+

Mở rộng: Lấy phần phải (count âm)

Dùng count = -1 để lấy phần sau dấu phân cách cuối cùng:

SELECT SUBSTRING_INDEX('a/b/c/d', '/', -1); -- kết quả: 'd'

Dùng count = 2 lấy phần trước dấu phân cách thứ 2:

SELECT SUBSTRING_INDEX('a/b/c/d', '/', 2); -- kết quả: 'a/b'

Lưu ý: Hàm này phân biệt chữ hoa/thường cho dấu phân cách.