目次
1. Cơ bản về thao tác chuỗi trong MySQL
Trong quản lý cơ sở dữ liệu, thao tác chuỗi là kỹ năng không thể thiếu để xử lý dữ liệu và tối ưu hóa kết quả truy vấn. MySQL cung cấp các hàm tiện lợi để cắt và thao tác chuỗi. Bài viết này sẽ tập trung vào hàmSUBSTRING
quan trọng, đồng thời giới thiệu các phương pháp thao tác chuỗi khác và giải thích cách sử dụng thực tế.2. Cắt chuỗi cơ bản trong MySQL – hàm SUBSTRING
HàmSUBSTRING
của MySQL là một trong những hàm được sử dụng nhiều nhất khi chỉ định và trích xuất một phần của chuỗi.Cú pháp cơ bản của hàm SUBSTRING
SUBSTRING(chuỗi, vị trí bắt đầu, số ký tự)
- Chuỗi: Chuỗi muốn cắt.
- Vị trí bắt đầu: Vị trí bắt đầu để cắt (vị trí ký tự đầu tiên là 1).
- Số ký tự: Số ký tự cần lấy (nếu bỏ qua, sẽ lấy từ vị trí bắt đầu đến cuối).
Ví dụ: Sử dụng cơ bản
SELECT SUBSTRING('Hello World', 2, 5);
Trong truy vấn này, chuỗi “Hello World” được cắt từ ký tự thứ 2 lấy 5 ký tự, kết quả là “ello “.Hàm SUBSTRING với giá trị âm
Bằng cách chỉ định giá trị âm cho vị trí bắt đầu, có thể đếm ngược từ cuối chuỗi để cắt.SELECT SUBSTRING('abcdefg', -3, 2);
Truy vấn này sẽ trả về “ef”, là ký tự thứ 3 và 4 tính từ cuối chuỗi.
3. Cắt chuỗi bằng hàm LEFT và RIGHT
Thay vì hàmSUBSTRING
, bạn cũng có thể sử dụng các hàm LEFT
và RIGHT
để lấy số ký tự chỉ định từ đầu hoặc cuối của chuỗi.Hàm LEFT
HàmLEFT
cắt ra số ký tự chỉ định từ phía bên trái của chuỗi.SELECT LEFT('abcdefg', 3);
Trong truy vấn này, kết quả sẽ là “abc”.Hàm RIGHT
Ngược lại, hàmRIGHT
lấy số ký tự chỉ định từ phía bên phải của chuỗi.SELECT RIGHT('abcdefg', 3);
Truy vấn này trả về kết quả “efg”. Các hàm này rất hữu ích khi cần cắt một số ký tự cố định từ một phía, trái hoặc phải.4. Phân tách chuỗi bằng hàm SUBSTRING_INDEX
SUBSTRING_INDEX
hàm được sử dụng để chia chuỗi dựa trên ký tự phân tách đã chỉ định và lấy một phần chuỗi cụ thể. Điều này đặc biệt hữu ích cho các trường CSV hoặc các trường chứa nhiều giá trị được nối lại.Cú pháp cơ bản của hàm SUBSTRING_INDEX
SUBSTRING_INDEX(chuỗi, ký_tự_phân_tách, N)
- chuỗi: Chuỗi mục tiêu để thao tác.
- ký_tự_phân_tách: Ký tự dùng làm tiêu chuẩn để chia chuỗi (ví dụ: dấu phẩy).
- N: Số lần phân tách cần lấy. Giá trị dương đếm từ đầu, giá trị âm đếm từ cuối.
Ví dụ: Cách sử dụng
SELECT SUBSTRING_INDEX('apple,orange,banana', ',', 2);
Trong truy vấn này, từ chuỗi ‘apple,orange,banana’ được phân tách bằng dấu phẩy, chúng ta lấy 2 phần đầu tiên ‘apple,orange’.
5. Ứng dụng thực tiễn: Trích xuất chuỗi trong thao tác cơ sở dữ liệu
Việc thao tác chuỗi rất hữu ích trong quản lý cơ sở dữ liệu thực tế. Dưới đây, chúng tôi sẽ giới thiệu một số ví dụ ứng dụng.Trích xuất một phần tên sản phẩm
Dưới đây là truy vấn tìm dữ liệu có tên sản phẩm kết thúc bằng 「Lớn」.SELECT * FROM products WHERE SUBSTRING(name, -2, 2) = 'Lớn';
Như vậy, có thể chỉ định phần cuối của dữ liệu và trích xuất các bản ghi khớp với điều kiện nhất định.Cắt dữ liệu số và tính toán
Ví dụ sử dụng một phần của trường số để tính toán.SELECT name, price, SUBSTRING(price, -2, 2) * 5 AS total FROM products;
Trong truy vấn này, phần 2 chữ số cuối của giá sản phẩm được trích xuất và nhân 5 để hiển thị 「total」.6. Mẹo tối ưu hoá hiệu năng
Các thao tác chuỗi rất tiện lợi, nhưng trong cơ sở dữ liệu quy mô lớn chúng có thể ảnh hưởng đến hiệu năng. Dưới đây là một số mẹo để cải thiện hiệu năng.Tận dụng chỉ mục
Khi tìm kiếm một phần của chuỗi, việc thiết lập chỉ mục phù hợp có thể tăng tốc độ truy vấn đáng kể. Ví dụ, khi kết hợp câu lệnhLIKE
với chỉ mục, truy vấn tìm kiếm từ đầu mẫu như LIKE 'abc%'
là tối ưu. Đối với khớp ngược như LIKE '%abc'
, chỉ mục sẽ không được sử dụng, dẫn đến hiệu năng giảm.Thao tác chuỗi trên dữ liệu lớn
Khi thường xuyên thực hiện các thao tác chuỗi trên các bảng quy mô lớn, việc cân nhắc thực hiện xử lý chuỗi ở mức ứng dụng là một giải pháp. Nếu xử lý trong cơ sở dữ liệu trở nên nặng, việc phân tán xử lý sang ứng dụng có thể giảm tải.
7. Tóm tắt
Việc thao tác chuỗi trong MySQL là một công cụ mạnh mẽ trong việc trích xuất dữ liệu và tạo báo cáo. Bằng cách tận dụng hiệu quả các hàm nhưSUBSTRING
, LEFT
, RIGHT
, bạn có thể dễ dàng lấy ra thông tin cần thiết. Ngoài ra, để tối ưu hiệu năng, việc thiết lập chỉ mục phù hợp và sáng tạo trong cách xử lý là rất quan trọng. Bằng cách nắm vững các kỹ thuật này, bạn sẽ có thể nâng cao hơn nữa kỹ năng thao tác chuỗi trong MySQL. Như một bước tiếp theo, chúng tôi khuyên bạn nên học về biểu thức chính quy và các kỹ thuật thao tác chuỗi nâng cao khác.