MỞ ĐẦU
ORACLE TABLE
ORACLE QUERY
ORACLE CONDITION
ORACLE CLAUSES
ORACLE OPERATORS
ORACLE JOINS
ORACLE REFERENCE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Lệnh LIKE và NOT LIKE trong Oracle

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.

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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp:

column_name LIKE ('pattern_string')

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.

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top