Giới thiệu
Toán tử LIKE
trong SQL cho phép bạn lọc dữ liệu chuỗi bằng cách sử dụng các mẫu đơn giản. Điều này đặc biệt hữu ích khi bạn cần tìm kiếm các giá trị không chính xác mà chỉ cần khớp một phần. Từ việc truy vấn tên, email đến địa chỉ, LIKE
giúp mã SQL của bạn linh hoạt hơn.
Cách hoạt động của toán tử LIKE
Cú pháp cơ bản của toán tử LIKE
như sau:
SELECT * FROM table WHERE column LIKE 'pattern';
Bạn có thể sử dụng:
%
đại diện cho nhiều ký tự_
đại diện cho một ký tự duy nhất
Ví dụ cụ thể:
'%data%'
: chứa “data”'A%'
: bắt đầu bằng “A”'____'
: đúng 4 ký tự
Ví dụ sử dụng thực tế
1. Khớp email:
sql
SELECT * FROM users WHERE email LIKE '%@gmail.com';
2. Tên bắt đầu bằng “A”:
sql
SELECT * FROM employees WHERE first_name LIKE 'A%';
3. Chứa từ khóa:
sql
SELECT * FROM articles WHERE content LIKE '%error%';
4. Khớp chiều dài:
sql
SELECT * FROM codes WHERE code LIKE '____';
Thực tiễn tốt nhất khi sử dụng LIKE
- Tránh sử dụng ký tự đại diện ở đầu (
%abc
) để cho phép sử dụng chỉ mục. - Sử dụng mẫu chỉ định để cải thiện hiệu suất.
- Kết hợp với
LENGTH()
hoặcSUBSTRING()
để kiểm soát tốt hơn. - Chú ý đến độ nhạy với chữ hoa và cài đặt collation.
- Cân nhắc chỉ mục và kế hoạch EXPLAIN khi tối ưu hóa truy vấn.
Câu hỏi thường gặp (FAQ)
Toán tử LIKE có thể làm việc với nhiều giá trị không?
Có, bạn có thể sử dụng OR
, hoặc với LIKE ANY
trong PostgreSQL.
Tôi có thể sử dụng LIKE trên số không?
Có, miễn là hệ quản trị cơ sở dữ liệu (DBMS) có thể xử lý chúng như chuỗi.
LIKE có chậm không?
Có thể, đặc biệt với ký tự đại diện ở đầu ('%abc'
). Sử dụng chỉ mục và mẫu chỉ định để tối ưu hóa.
LIKE có nhạy cảm với chữ hoa không?
Phụ thuộc vào collation. Bạn có thể chuẩn hóa bằng LOWER()
nếu cần.
LIKE có thể sử dụng regex không?
Không. Sử dụng các hàm regex (ví dụ: SIMILAR TO
) cho các mẫu nâng cao.
Kết luận
Toán tử LIKE
có vẻ đơn giản nhưng lại rất mạnh mẽ. Bằng cách thành thạo cách sử dụng nó, bạn có thể viết các truy vấn SQL linh hoạt và hiệu quả hơn. Để chạy và thử nghiệm các mẫu này dễ dàng, hãy xem xét các công cụ như DbVisualizer. Nó hỗ trợ nhiều cơ sở dữ liệu và giúp việc khám phá dữ liệu nhanh chóng và trực quan—dù cho các mẫu của bạn có phức tạp đến đâu.
Để tìm hiểu thêm về toán tử LIKE trong SQL, hãy đọc bài viết "Hướng Dẫn Toàn Diện về Toán Tử LIKE trong SQL".