Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Like trong SQL là gì? Cách dùng hàm Like trong SQL như thế nào? Hãy cùng Quantrimang tìm hiểu nhé!
SQL là kiến thức nhất định bạn cần biết khi học lập trình ngoài những ngôn ngữ phổ biến khác. SQL giúp bạn lập trình và quản trị cơ sở dữ liệu tốt hơn. Về cơ bản, học SQL cũng không quá khó nếu bạn dành thời gian tìm hiểu nghiệm túc.
SQL cũng có các hàm, lệnh và toán tử như những ngôn ngữ lập trình. Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu lệnh LIKE trong SQL nhé!
Trong SQL, toán tử LIKE được dùng để so sánh một giá trị với các giá trị tương tự bằng cách sử dụng các toán tử đại diện (wildcard). Toán tử LIKE thường được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu được chỉ định trong một cột.
Có 2 ký tự đại diện được sử dụng trong toán tử LIKE, những ký tự này có thể được sử dụng kết hợp cùng với nhau:
Lưu ý: MS Access sử dụng dấu hoa thị (*) thay vì dùng dấu phần trăm (%); và dấu hỏi (?) thay cho dấu gạch dưới (_).
Cú pháp cơ bản của lệnh LIKE như sau:
SELECT cot1, cot2,.... cotn FROM ten_bang WHERE ten_cot LIKE [mẫu so sánh];
Mẹo: Bạn cũng có thể kết hợp bất kỳ số lượng điều kiện nào bằng cách sử dụng toán tử AND hoặc OR.
Dưới đây là một số ví dụ hiển thị các toán tử LIKE khác nhau, bằng cách kết hợp các ký tự đại diện '%' và '_':
| Mẫu so sánh | Mô tả |
| LIKE 'qtm%' | Tìm giá trị bắt đầu bằng "qtm" |
| LIKE '%qtm' | Tìm giá trị kết thúc bằng "qtm" |
| LIKE '%qtm%' | Tìm giá trị có "qtm" ở bất kỳ vị trí nào |
| LIKE '_qtm%' | Tìm giá trị có "qtm" ở vị trí thứ hai |
| LIKE 'q_%' | Tìm giá trị bắt đầu bằng "q" và có ít nhất 2 ký tự |
| LIKE 'q__%' | Tìm giá trị bắt đầu bằng "q" và có độ dài ít nhất 3 ký tự |
| LIKE 'q%q' | Tìm giá trị bắt đầu bằng "q" và kết thúc bằng "q" |
Trong những ví dụ trên có thể thay qtm và q bằng bất kì ký tự nào mà bạn thấy phù hợp.
Bạn có thể dùng toán tử LIKE với nhiều mẫu chuỗi để chọn hàng bằng cách dùng toán tử OR. Ví dụ:
SELECT * FROM Customers WHERE last_name LIKE 'R%t' OR last_name LIKE '%e';
Lệnh SQL này chọn khách hàng có last_name bắt đầu bằng chữ R và kết thúc bằng t, hoặc khách hàng có last_name kết thúc bằng e.
Bạn cũng có thể đảo ngược hoạt động của toán tử LIKE và bỏ qua nhóm kết quả khớp với mẫu chuỗi được đưa ra bằng cách dùng toán tử NOT. Ví dụ:
SELECT * FROM Customers WHERE country NOT LIKE 'USA';
Tại đây, lệnh SQL chọn toàn bộ khách hàng, ngoại trừ ở Mỹ.
Hiện bạn có thể dùng nhiều ký tự đại diện hơn. Hãy xem xét một ví dụ khác. Ở đây dùng ký tự đại diện _ với LIKE trong SQL.
SELECT * FROM Customers WHERE country LIKE 'U_';
Lệnh SQL này chọn khách hàng ở quốc gia có tên bắt đầu bằng U và được theo sau bằng 1 ký tự.
Chúng ta hãy lấy một ví dụ thực tế, xem xét bảng NHANVIEN có các bản ghi như dưới đây.
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | +----+----------+-----+-----------+----------+
Ví dụ hiển thị tất cả các bản ghi từ bảng NHANVIEN mà LUONG bắt đầu bằng 200, ta thực hiện như sau:
SELECT * FROM NHANVIEN WHERE LUONG LIKE '200%';
Kết quả trả về hiển thị là:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 3 | Nga | 23 | Hanam | 2000.00 | +----+----------+-----+-----------+----------+
Tiếp theo, ta cần xem danh sách những người có tên DIACHI bắt đầu bằng chữ H và kết thúc là chữ M:
SELECT * FROM NHANVIEN WHERE LUONG LIKE 'H%M';
Bảng kết quả sẽ như sau:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 3 | Nga | 23 | Hanam | 2000.00 | | 6 | Cao | 22 | HCM | 4500.00 | +----+----------+-----+-----------+----------+
Ký tự escape trong SQL được dùng để loại bỏ các ký tự đại diện nhất định khỏi biểu thức của toán tử LIKE. Bằng cách này, bạn có thể dùng những ký tự đại diện đó như bình thường.
Dùng escape, bạn cũng có thể tránh sử dụng ký tự được dành riêng trong cú pháp SQL để biểu thị tập lệnh nhất định, như dấu nháy đơn “ ' ”, “%” và “_”.
Ví dụ, nếu cần tìm kiếm % dưới dạng chuỗi ký tự trong điều kiện LIKE, thì bạn cần tới ký tự Escape.
Lưu ý - Một ký tự escape chỉ được xác định dưới dạng một ký tự đơn lẻ.
Cú pháp:
Cú pháp dùng toán tử LIKE với ký tự escape như sau:
SELECT column1, column2, ... FROM table_name WHERE column1 LIKE 'pattern ESCAPE escape_character';
Trong dó:
Ví dụ:
Tạo một bảng mới EMPLOYEE bằng truy vấn bên dưới - :
CREATE TABLE EMPLOYEE ( SALARY DECIMAL (18,2) NOT NULL, BONUS_PERCENT VARCHAR (20) );
Giờ bạn có thể chèn giá trị vào những bảng trống này bằng lệnh INSERT như sau:
INSERT INTO EMPLOYEE VALUES (67000.00, '45.00'); INSERT INTO EMPLOYEE VALUES (54000.00, '20.34%'); INSERT INTO EMPLOYEE VALUES (75000.00, '51.00'); INSERT INTO EMPLOYEE VALUES (84000.00, '56.82%');
Bảng Employee bao gồm lương của nhân viên trong công ty và phần trăm tiền thưởng trong lương như hình bên dưới:
+----------+---------------+
| SALARY | BONUS_PERCENT |
+----------+---------------+
| 67000.00 | 45.00 |
| 54000.00 | 20.34% |
| 75000.00 | 51.00 |
| 84000.00 | 56.82% |
+----------+---------------+
Giờ thử hiện toàn bộ bản ghi dữ liệu trong bảng EMPLOYEE, tại đây BONUS_PERCENT chứa ký tự %.
select * from CUSTOMERS WHERE BONUS_PERCENT LIKE'%!%%' escape '!';
Kết quả:
+----------+---------------+
| SALARY | BONUS_PERCENT |
+----------+---------------+
| 54000.00 | 20.34% |
| 84000.00 | 56.82% |
+----------+---------------+
Mọt trong số điều quan trọng cần lưu ý về toán tử LIKE trong SQL là mặc định nó không phân biệt chữ hoa & thường trong hầu hết hệ thống database. Điều đó có nghĩa nếu bạn tìm từ khóa apple bằng toán tử LIKE, nó sẽ trả về kết quả bao gồm “Apple”, “APPLE”, “aPpLe”…
Để làm cho toán tử LIKE phân biệt chữ hoa chữ thường, bạn có thể sử dụng từ khóa “BINARY” trong MySQL hoặc từ khóa “COLLATE” trong các hệ thống cơ sở dữ liệu khác.
Ví dụ:
SELECT * FROM products WHERE name LIKE BINARY 'apple%'
Truy vấn sau sẽ chỉ trả về những sản phẩm có tên bắt đầu bằng “apple” và được đánh vần chính xác như vậy, không có chữ in hoa.
Trong phần tiếp theo, chúng ta sẽ tìm hiểu về câu lệnh TOP, các bạn nhớ theo dõi nhé.
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Xây dựng một workflow AI thực tế từ đầu đến cuối
Cách xuất nội dung ChatGPT sang Google Docs không mất định dạng
Đánh giá và cải thiện thói quen sử dụng AI
Perplexity AI là gì?
Cách kết nối Google Drive với ChatGPT
Meitu VIP vs Meitu SVIP: Nên lựa chọn gói chỉnh ảnh nào?
Tại sao Claude for Teachers lại tạo nên sự khác biệt?
Hướng dẫn dùng Higgsfield tạo video trên ChatGPT
Cách dùng NotebookLM trong Google Docs
Hướng dẫn dùng Dola AI tạo bảng dữ liệu từ câu lệnh
Chỉnh sửa kế hoạch giảng dạy do Claude for Teachers tạo dưới góc độ một biên tập viên
TOP công cụ AI tạo biểu mẫu và khảo sát
Chỉnh sửa nội dung giáo án do Claude for Teachers tạo
Tìm hiểu về các tính năng Home, Code và Autopilot mới trong Copilot
Hướng dẫn đăng ký tài khoản quảng cáo ChatGPT
Microsoft Frontier: Chương trình cho phép bạn trải nghiệm sớm các tính năng AI trước khi chúng được phát hành rộng rãi
OpenClaw là gì?
Hướng dẫn dùng Lovable AI trên ChatGPT tạo website cực nhanh
Học kỹ năng Mô tả: Hoàn thành prompt AI đầu tiên có thể sử dụng được
Tự tạo ứng dụng quản lý công việc trên Gemini rất đơn giản
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
8 ứng dụng Microsoft Store miễn phí giúp Windows tốt hơ
6 cách mở Computer/System Properties trong Windows 10
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows