Giới thiệu
Hàm SUBSTR(str, pos, len) (hoặc SUBSTRING()) trích xuất chuỗi con từ vị trí pos độ dài len. Vị trí tính từ 1.
Ví dụ minh họa
Tạo bảng và chèn dữ liệu
mysql> CREATE TABLE DemoTable (
Title VARCHAR(100)
);
mysql> INSERT INTO DemoTable VALUES
('Introduction to MySQL'),
('Introduction to Java'),
('C in Depth with data structure and algorithm');
Truy vấn lấy 15 ký tự đầu
mysql> SELECT SUBSTR(Title, 1, 15) FROM DemoTable;
Kết quả
+--------------------+ | SUBSTR(Title,1,15) | +--------------------+ | Introduction to | | Introduction to | | C in Depth with | +--------------------+
Các biến thể
SUBSTR(Title, 1, 15)- 15 ký tự đầu.SUBSTR(Title, -15)- 15 ký tự cuối (vị trí âm tính từ cuối).SUBSTR(Title, 10)- Từ ký tự 10 đến hết.LEFT(Title, 15)- Tương đương SUBSTR(Title, 1, 15), ngắn gọn hơn.RIGHT(Title, 15)- 15 ký tự cuối.
Ứng dụng thực tế
- Tạo excerpt/tóm tắt cho bài viết.
- Hiển thị preview trong danh sách.
- Kết hợp
CONCAT(SUBSTR(col, 1, 50), '...')cho "read more".
Lưu ý
- Nếu chuỗi ngắn hơn độ dài yêu cầu, trả về toàn bộ chuỗi (không lỗi).
- Với ký tự Unicode (UTF-8), SUBSTR tính theo **byte** trong một số version cũ, nhưng MySQL 8.0+ tính theo **ký tự** (character) đúng chuẩn.
- Để an toàn với Unicode:
SUBSTR(Title, 1, 15)hoạt động tốt trong MySQL hiện đại.