Tóm tắt
Dùng hàm LENGTH() (số byte) hoặc CHAR_LENGTH() (số ký tự) trong mệnh đề WHERE để lọc.
Cú pháp
SELECT * FROM bang WHERE LENGTH(cot) < 5;
-- Hoặc đếm ký tự:
SELECT * FROM bang WHERE CHAR_LENGTH(cot) < 5;
Ví dụ
1. Tạo bảng mã bưu chính
CREATE TABLE fieldLessThan5Chars (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
yourZipCode VARCHAR(10)
);
2. Dữ liệu
INSERT INTO fieldLessThan5Chars (yourZipCode) VALUES
('35801'), ('3580'), ('90001'), ('100'), ('10'), ('0'), ('90209'), ('33124');
3. Lọc độ dài < 5 ký tự
SELECT * FROM fieldLessThan5Chars WHERE LENGTH(yourZipCode) < 5;
4. Kết quả
+----+-------------+
| Id | yourZipCode |
+----+-------------+
| 2 | 3580 |
| 4 | 100 |
| 5 | 10 |
| 6 | 0 |
+----+-------------+
LENGTH vs CHAR_LENGTH
| Hàm | Đếm | Ví dụ 'abc' | Ví dụ 'あいう' (UTF-8) |
|---|---|---|---|
| LENGTH() | Byte | 3 | 9 (3 ký tự × 3 byte) |
| CHAR_LENGTH() | Ký tự | 3 | 3 |
Khuyến nghị
- Dùng
CHAR_LENGTH()cho logic nghiệp vụ (số ký tự người dùng thấy). - Dùng
LENGTH()cho kiểm tra kích thước lưu trữ, validation byte. - Index: không thể index trực tiếp LENGTH() – dùng generated column/virtual column nếu cần tìm kiếm nhanh.