PostgreSQL THÍCH, Không thích, Ký tự đại diện (%, _ )

⚡ Tóm tắt thông minh

PostgreSQL Toán tử LIKE so khớp văn bản với các mẫu sử dụng hai ký tự đại diện — dấu phần trăm và dấu gạch dưới. Hướng dẫn này sẽ chỉ ra cách sử dụng LIKE và NOT LIKE trong câu lệnh SELECT, với các ví dụ psql và pgAdmin minh họa cho từng trường hợp.

  • 🔍 Trung tâm Operator: Hàm LIKE so sánh một cột hoặc biểu thức với một mẫu ký tự đại diện và trả về true nếu khớp.
  • 🌟 Hai quân bài bất ngờ: % Khớp với không hoặc nhiều ký tự; _ khớp chính xác một ký tự.
  • Đối sánh ngược: Kết hợp NOT với LIKE để trả về các hàng thỏa mãn điều kiện sau: không Hãy khớp với mẫu.
  • 🛠️ Hai giao diện: Bạn có thể chạy các truy vấn tương tự từ dòng lệnh psql hoặc trực quan bên trong pgAdmin.
  • 🎯 Nhân vật thoát hiểm: Sử dụng mệnh đề ESCAPE để khớp với các ký tự % hoặc _ bên trong mẫu.
  • 🤖 Tăng cường AI: Các công cụ cơ sở dữ liệu AI dịch các nhu cầu tìm kiếm bằng ngôn ngữ thông thường thành các mẫu LIKE và đề xuất ILIKE khi cần so khớp không phân biệt chữ hoa chữ thường.

PostgreSQL THÍCH, Không thích, Ký tự đại diện (%, _ )

PostgreSQL Tương tự Toán tử LIKE so khớp các giá trị văn bản với các mẫu bằng cách sử dụng ký tự đại diện. Nếu biểu thức tìm kiếm khớp với mẫu, LIKE sẽ trả về kết quả. trueKý tự đại diện hoạt động trong WHERE mệnh đề của SELECT, UPDATE, INSERT, hoặc là DELETE.

Những gì đang có PostgreSQL Ký tự đại diện?

PostgreSQL Hỗ trợ hai ký tự đại diện LIKE:

  • Dấu phần trăm (%): Khớp với không, một, hoặc nhiều ký tự hoặc chữ số.
  • Dấu gạch dưới (_): Khớp chính xác với một ký tự hoặc chữ số.

Hai ký hiệu này có thể được kết hợp trong cùng một mẫu. Nếu sử dụng LIKE mà không có ký tự đại diện nào, nó hoạt động giống như dấu bằng (=) nhà điều hành.

PostgreSQL Cú pháp LIKE

Cú pháp LIKE cơ bản là:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • biểu hiện — một biểu thức ký tự, thường là tên cột hoặc tên trường.
  • Belt Hold — một biểu thức ký tự chứa ký tự đại diện.
  • nhân vật trốn thoát — tùy chọn. Cho phép bạn khớp với nghĩa đen. % or _ ký tự. Khi bỏ qua, dấu gạch chéo ngược (\) là ký tự thoát mặc định.

PostgreSQL Tương tự với ký tự đại diện %

% Dấu này khớp với không, một hoặc nhiều ký tự. Hãy xem xét ví dụ sau: Book bàn:

Bảng mẫu sách được sử dụng trong các ví dụ LIKE

Để tìm những cuốn sách có tên bắt đầu bằng chữ “Lear”, hãy chạy truy vấn bên dưới.

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Kết quả truy vấn trả về:

Kết quả truy vấn LIKE Lear% trả về các cuốn sách phù hợp.

Để tìm sách có tên chứa từ “by” ở bất kỳ đâu:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Kết quả truy vấn trả về:

LIKE kết quả truy vấn %by% với các cuốn sách phù hợp

PostgreSQL Tương tự với ký tự đại diện _

_ Từ khóa "sign" khớp chính xác với một ký tự. Truy vấn sau đây tìm các tên mà ký tự đầu tiên là bất kỳ chữ cái nào, theo sau là "earn" và sau đó là bất kỳ hậu tố nào:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Kết quả truy vấn trả về:

Kết quả truy vấn LIKE _earn% với tiền tố một ký tự khớp

Một ví dụ khác — hãy tìm bất kỳ đoạn văn bản nào kết thúc bằng “Beginner” cộng thêm một ký tự nữa:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

Kết quả truy vấn trả về:

LIKE %Beginner_ kết quả truy vấn khớp với ký tự đơn cuối cùng

PostgreSQL KHÔNG THÍCH Operator

Kết hợp LIKE với NOT để trả về các hàng thỏa mãn điều kiện. không Hãy tìm điểm phù hợp. Ví dụ, hãy liệt kê tất cả các cuốn sách có tên không bắt đầu bằng “Post”:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Kết quả truy vấn trả về:

KHÔNG GIỐNG như kết quả Post% không bao gồm các sách bắt đầu bằng Post

Chỉ có một cuốn sách thỏa mãn điều kiện. Bây giờ hãy liệt kê tất cả các cuốn sách có tên thỏa mãn điều kiện đó. không Chứa từ “Made”:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Kết quả truy vấn trả về:

KHÔNG GIỐNG NHƯ kết quả %Made% trả về ba cuốn sách phù hợp

Ba hàng thỏa mãn điều kiện.

Sử dụng LIKE với pgAdmin

Các truy vấn tương tự cũng có thể được chạy trực quan bên trong Công cụ Truy vấn của pgAdmin.

Ký tự đại diện % trong pgAdmin

Bước 1) Đăng nhập vào pgAdmin.

Bước 2) Trên thanh điều hướng bên trái, hãy nhấp chuột Cơ sở dữ liệu, sau đó nhấn vào Demo.

Cây điều hướng pgAdmin với phần Cơ sở dữ liệu và Bản demo được mở rộng

Bước 3) Nhập truy vấn vào Trình soạn thảo truy vấn:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Bước 4) Nhấp chuột Thực hiện.

Công cụ truy vấn pgAdmin với nút Thực thi trên thanh công cụ.

Ngăn kết quả hiển thị các cuốn sách phù hợp:

Khung kết quả pgAdmin cho truy vấn LIKE Lear%

Để tìm kiếm sách có chứa từ "by" ở bất kỳ vị trí nào trong tên sách:

Bước 1) Nhập đoạn mã sau vào Trình soạn thảo truy vấn:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Bước 2) Nhấp chuột Thực hiện.

Công cụ truy vấn pgAdmin đang chạy truy vấn LIKE %by%

Ngăn kết quả hiển thị:

Khung kết quả pgAdmin cho truy vấn LIKE %by%

_ Ký tự đại diện trong pgAdmin

Bước 1) Đăng nhập vào pgAdmin.

Bước 2) Trên thanh điều hướng bên trái, hãy nhấp chuột Cơ sở dữ liệu, sau đó nhấn vào Demo.

Cây điều hướng pgAdmin hiển thị cây Cơ sở dữ liệu

Bước 3) Nhập truy vấn vào Trình soạn thảo truy vấn:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Bước 4) Nhấp chuột Thực hiện.

Công cụ truy vấn pgAdmin đang chạy truy vấn LIKE _earn%

Ngăn kết quả hiển thị:

Bảng kết quả pgAdmin cho truy vấn LIKE _earn%

Bước 5) Chạy ví dụ thứ hai:

  1. Nhập truy vấn vào Trình soạn thảo truy vấn:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Nhấp chuột Thực hiện.

Công cụ truy vấn pgAdmin đang chạy truy vấn LIKE %Beginner_

Ngăn kết quả hiển thị:

Kết quả hiển thị trong pgAdmin cho truy vấn LIKE %Beginner_

KHÔNG GIỐNG NHƯ trong pgAdmin

Bước 1) Đăng nhập vào pgAdmin.

Bước 2) Trên thanh điều hướng bên trái, hãy nhấp chuột Cơ sở dữ liệu, sau đó nhấn vào Demo.

Cây điều hướng pgAdmin cho ví dụ KHÔNG THÍCH

Bước 3) Để liệt kê tất cả các cuốn sách có tên không bắt đầu bằng “Post”, hãy nhập:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Bước 4) Nhấp chuột Thực hiện.

Công cụ truy vấn pgAdmin đang chạy truy vấn NOT LIKE Post%

Ngăn kết quả hiển thị:

Kết quả hiển thị trong pgAdmin cho truy vấn NOT LIKE Post%

Thông tin chi tiết bổ sung về kết quả pgAdmin cho truy vấn NOT LIKE

Liệt kê những cuốn sách có tên không chứa từ “Made”:

Bước 1) Nhập đoạn mã sau vào Trình soạn thảo truy vấn:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Bước 2) Nhấp chuột Thực hiện.

Công cụ truy vấn pgAdmin đang chạy truy vấn NOT LIKE %Made%

Ngăn kết quả hiển thị:

Kết quả hiển thị trong pgAdmin cho truy vấn NOT LIKE %Made%

Tải xuống cơ sở dữ liệu được sử dụng trong hướng dẫn này..

Câu Hỏi Thường Gặp

LIKE phân biệt chữ hoa chữ thường trong khi ILIKE thực hiện so khớp không phân biệt chữ hoa chữ thường. ILIKE là một PostgreSQL Mở rộng. Ví dụ, tên ILIKE 'lear%' khớp với cả “Learn” và “LEAR”. Sử dụng ILIKE khi kiểu chữ hoa/chữ thường do người dùng nhập không thể dự đoán được.

Sử dụng mệnh đề ESCAPE để khai báo ký tự thoát, sau đó thêm ký tự đại diện theo nghĩa đen vào trước. Ví dụ: WHERE code LIKE '50!%%' ESCAPE '!' tìm các giá trị bắt đầu bằng “50%” vì dấu chấm than sẽ thoát khỏi dấu phần trăm.

Sử dụng LIKE cho các khớp tiền tố, hậu tố hoặc chuỗi con đơn giản. Chuyển sang biểu thức chính quy POSIX (~ và ~*) khi bạn cần các lớp ký tự, lựa chọn thay thế hoặc lượng từ. Biểu thức chính quy mạnh mẽ hơn nhưng thường chậm hơn LIKE đối với các mẫu cơ bản.

Vâng. AI Các trợ lý như công cụ chuyển đổi văn bản thành SQL sẽ dịch các câu lệnh như “tìm khách hàng có email chứa từ acme” thành tên tương tự như '%acme%' và giải thích logic ký tự đại diện, giúp tăng tốc quá trình báo cáo tức thời.

Trí tuệ nhân tạo tạo sinh (Generative AI) kiểm tra kế hoạch truy vấn, đề xuất chỉ mục trigram (pg_trgm) cho các tìm kiếm LIKE có ký tự đại diện dẫn đầu, và viết lại các mẫu ngăn cản việc sử dụng chỉ mục. Điều này biến việc quét toàn bộ bảng thành các thao tác tra cứu chỉ trong mili giây trên các bảng lớn. PostgreSQL bảng.

Tóm tắt bài viết này với: