Cắt chuỗi lấy N ký tự đầu với LEFT() trong MySQL
Hàm LEFT(chuoi, so_ky_tu) trả về số ký tự chỉ định từ đầu chuỗi.
Tạo bảng và dữ liệu
mysql> create table DemoTable ( Title text ); Query OK, 0 rows affected (0.59 sec)
mysql> insert into DemoTable values('Java database connectivity to MySQL database');
mysql> insert into DemoTable values('Python with django framework');
mysql> insert into DemoTable values('C with data structure and algorithm');
Truy vấn lấy 15 ký tự đầu
mysql> select left(Title,15) as Title from DemoTable;
Kết quả
+-----------------+ | Title | +-----------------+ | Java database c | | Python with dja | | C with data str | +-----------------+
⚠️ Lưu ý quan trọng: Tiêu đề bài viết gốc nói "15 words" (15 từ) nhưng hàm LEFT() cắt theo ký tự (characters), không phải từ. Kết quả cắt giữa từ.
Để cắt theo từ (phức tạp hơn): MySQL không có hàm sẵn. Cách tiếp cận:
- Ứng dụng xử lý sau khi SELECT
- Hoặc dùng stored function phức tạp duyệt qua chuỗi
- MySQL 8.0: Có thể dùng
REGEXP_SUBSTRnhưng vẫn phức tạp
Hàm liên quan: RIGHT() (ký tự cuối), SUBSTRING() (vị trí tùy ý), SUBSTRING_INDEX() (cắt theo dấu phân cách).