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

Cách lấy 40 ký tự đầu của trường TEXT trong MySQL


Cú pháp

Sử dụng hàm LEFT() để cắt lấy N ký tự đầu tiên:

SELECT LEFT(ten_cot, 40) AS ten_alias FROM ten_bang;

Ví dụ minh họa

1. Tạo bảng

mysql> CREATE TABLE retrieveFirst40Characters ( 
-> AllWords TEXT 
-> ); 
Query OK, 0 rows affected (0.59 sec)

2. Chèn văn bản dài

mysql> INSERT INTO retrieveFirst40Characters 
VALUES('This is a query demo to extract a forty characters from a text field, you can use left function to get forty characters'); 
Query OK, 1 row affected (0.32 sec)

3. Dữ liệu gốc

mysql> SELECT * FROM retrieveFirst40Characters;
+------------------------------------------------------------------------------------------------------------------------+ 
| AllWords                                                                                                                 | 
+------------------------------------------------------------------------------------------------------------------------+ 
| This is a demo text displayed in a table for our example                                                                 | 
+------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec)

4. Lấy 40 ký tự đầu

mysql> SELECT LEFT(AllWords, 40) AS Retrieve40Characters FROM retrieveFirst40Characters;
+------------------------------------------+ 
| Retrieve40Characters                     | 
+------------------------------------------+ 
| This is a demo text displayed in a table | 
+------------------------------------------+ 
1 row in set (0.03 sec)

Các hàm cắt chuỗi liên quan

HàmMô tảVí dụ
LEFT(str, n)N ký tự đầuLEFT('Hello World', 5) → 'Hello'
RIGHT(str, n)N ký tự cuốiRIGHT('Hello World', 5) → 'World'
SUBSTRING(str, start, len)Con chuỗi từ vị trí start, dài lenSUBSTRING('Hello World', 7, 5) → 'World'
SUBSTRING_INDEX(str, delim, count)Cắt theo dấu phân cáchSUBSTRING_INDEX('a.b.c', '.', 2) → 'a.b'

Ứng dụng thực tế

Tạo mô tả ngắn (excerpt) cho bài viết

SELECT 
    id,
    title,
    LEFT(content, 150) AS excerpt,
    CASE WHEN CHAR_LENGTH(content) > 150 THEN '...' ELSE '' END AS more_indicator
FROM articles;

Hiển thị preview email

SELECT 
    subject,
    LEFT(body, 100) AS preview
FROM emails
WHERE user_id = 123;

Lưu ý hiệu năng

  • LEFT() hoạt động tốt trên cột TEXT
  • Không cần index cho cột TEXT khi dùng LEFT()
  • Tránh dùng trong WHERE clause trên cột TEXT lớn
  • Cân nhắc lưu cột preview riêng nếu truy vấn thường xuyên