Lệnh LIKE Và NOT LIKE Trong Oracle - Freetuts
Có thể bạn quan tâm
Trong bài này chúng ta sẽ tìm hiểu cách xử lý tìm kiếm dữ liệu gần giống với LIKE trong Oracle, đây là lệnh cho phép bạn so sánh dữ liệu gần giống, rất hữu ích ở một số trường hợp cần xử lý truy vấn tìm kiếm.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.1. Lệnh LIKE trong Oracle
LIKE được dùng ở lệnh WHERE, nó cho phép bạn định dạng dữ liệu so sánh khớp mẫu.
Cú pháp:
column_name LIKE ('pattern_string')
Bài viết này được đăng tại [free tuts .net]
Trong đó:
- column_name là cột bạn muốn tìm kiếm
- pattern_string là chuỗi so khớp
Bạn có thể sử dụng cú pháp của Regular Expression ở chuỗi so khớp, tuy nhiên thông thường chúng ta chỉ sử dụng hai ký hiệu sau đây với lệnh LIKE.
Ký hiệu | Giải thích |
---|---|
% | Đại diện cho một dãy các kí tự |
_ | Đại diện cho một kí tự đơn |
Ví dụ: Mình có cột fullname, bây giờ mình muốn lấy tên tất cả sinh viên có tên là Cường. Như vậy mình sẽ sử dụng ký hiệu % cho họ và tên lót bởi nó đại diện cho một dãy kí tự.
SELECT * FROM students WHERE student_name LIKE ('% Cuong')
Như vậy những ai có tên Cường thì sẽ được chọn, cho dù tên họ và tên lót của họ là gì đi nữa.
Ví dụ: mình muốn lấy danh sách khách hàng có số điện thoại 10 chữ số và bắt đầu bằng 0979. Như vậy còn 6 số sau mình sẽ dùng dấu _ để đại diện cho 6 số còn lại.
SELECT * FROM phones WHERE phone_number LIKE ('0979______')
2. Lệnh NOT LIKE trong Oracle
Ngược lại với lệnh LIKE, lệnh NOT LIKE kiểm tra không giống với chuỗi cần so khớp.
Cú pháp:
column_name NOT LIKE ('pattern_string')
Trong đó các tham số được giải thích như trên.
Ví dụ: Lấy danh sách sinh viên có tên khác Cường ở bảng students.
SELECT * FROM students WHERE student_name NOT LIKE ('% Cuong')
3. Ký tự đặc biệt ESCAPE
Giả sử trong chuỗi so khớp bạn xuất hiện ký tự % hoặc _ thì bạn phải thông báo cho Oracle biết đó là một ký tự bình thường, bằng cách thêm dấu \ đằng trước nó.
Ví dụ: Tìm tất cả bài viết có tiêu đề xuất hiện ký tự %
SELECT * FROM posts WHERE title LIKE "%\%%"
Ví dụ: Tìm tất cả sản phẩm có mã sản phẩm bắt đầu bằng _ và chỉ có hai ký tự.
SELECT * FROM products WHERE id LIKE "\__"
Ký tự mặc định của ESCAPE là \, tuy nhiên bạn có thể thay đổi nó bằng cách khai báo như sau:
Như hai ví dụ trên mình có thể viết lại như sau:
Ví dụ 1 SELECT * FROM posts WHERE title LIKE "%!%%" ESCAPE "!";
Ví dụ 2 SELECT * FROM products WHERE id LIKE "#__" ESCAPE "#"
Ở ví dụ 1 mình dùng dấu !, còn ví dụ 2 mình dùng dấu # để thay thế.
4. Lời kết
Như vậy mình đã giới thiệu xong lệnh LIKE và cách dùng lệnh LIKE để tìm kiếm dữ liệu gần đúng, nghĩa là sự so khớp sẽ dựa vào chuỗi pattern mà bạn định nghĩa.
Lệnh này rất hay và được dùng rất nhiều, tuy nhiên về mặt tối ưu thì dùng nó không được tốt cho lắm, tốc độ xử lý sẽ chậm.
Từ khóa » Tìm Kiếm Có Dấu Trong Oracle
-
So Sánh Các Chuỗi Bỏ Qua Dấu Trong SQL (ORACLE) - HelpEx
-
Làm Sao để Select Cả Tiếng Việt Có Dấu Và Không Dấu Trong Oracle
-
Sử Dụng Gợi ý Trong Oracle - Viblo
-
Các Hàm Xử Lý Chuỗi Trong Oracle - Openplanning
-
Hướng Dẫn Học SQL Cho Người Mới Bắt đầu Với Oracle
-
Làm Cách Nào để Thay Thế Một Trích Dẫn Duy Nhất Trong PostgreSQL?
-
45 Câu Truy Vấn Oracle Rất Hữu Ích - Mofun IT
-
Toán Tử Trong SQL
-
Hàm Hàm REGEXP_INSTR Trong Oracle - TRẦN VĂN BÌNH MASTER
-
TÌM HIỂU TẤN CÔNG SQL INJECTION TRONG ORACLE - Tài Liệu Text
-
Tìm Kiếm Một Cơ Sở Dữ Liệu Oracle Cho Các Bảng Với Tên Cột Cụ Thể?
-
Học Oracle – Kiến Thức Cơ Bản Cho Người Mới Bắt đầu