PostgreSQL ХАРЕСВА, Не харесва, Заместващи знаци (%, _ ) Примери
⚡ Умно обобщение
PostgreSQL LIKE съпоставя текст с шаблони, използвайки два заместващи символа - знака за процент и долната черта. Този урок показва как да използвате LIKE и NOT LIKE в SELECT оператори, с работещи примери в psql и pgAdmin за всеки случай.

- PostgreSQL КАТО Операторът съпоставя текстови стойности с шаблони, използвайки заместващи символи. Ако изразът за търсене съвпада с шаблона, LIKE връща trueЗаместващите символи работят в WHERE клауза на SELECT, UPDATE, INSERT или DELETE.
Какви са PostgreSQL Заместващи знаци?
PostgreSQL поддържа два заместващи символа LIKE:
- Знак за процент (
%): съвпада с нула, един или много символи или цифри. - Подчертаване (
_): съвпада точно с един символ или цифра.
Двата символа могат да се комбинират в рамките на един и същ шаблон. Ако LIKE се използва без заместващи символи, той се държи като символа за равно (=) оператор.
PostgreSQL Синтаксис на LIKE
Основният синтаксис на LIKE е:
expression LIKE pattern [ ESCAPE 'escape-character' ]
- изразяване — символен израз, обикновено име на колона или поле.
- модел — символен израз, който съдържа заместващи символи.
- escape-символ — незадължително. Позволява ви да съпоставите буквално
%or_символи. Когато е пропусната, обратната наклонена черта (\) е символът за екраниране по подразбиране.
PostgreSQL КАТО с % Wildcard
- % знакът съвпада с нула, един или повече символа. Разгледайте следното Book таблица:
За да намерите книги, чието име започва с „Lear“, изпълнете заявката по-долу.
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
Заявката връща:
За да намерите книги, чието име съдържа „от“ навсякъде:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
Заявката връща:
PostgreSQL КАТО с уайлдкарда _
- _ знакът съвпада точно с един символ. Следната заявка намира имена, където първият символ е произволна буква, последвана от „earn“ и след това произволен суфикс:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
Заявката връща:
Друг пример — съпоставяне на всеки текст, който завършва с „Beginner“ плюс още един символ:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
Заявката връща:
PostgreSQL НЕ КАТО OperaTor
Комбинирайте LIKE с NOT, за да върнете редове, които го правят не съпоставете шаблона. Например, избройте всяка книга, чието име не започва с „Post“:
SELECT *
FROM
Book
WHERE
name NOT LIKE 'Post%';
Заявката връща:
Само една книга отговаря на условието. Сега избройте всички книги, чието име отговаря на това условие. не съдържат думата „Произведено“:
SELECT *
FROM
Book
WHERE
name NOT LIKE '%Made%';
Заявката връща:
Три реда удовлетворяват условието.
Използване на LIKE с pgAdmin
Същите заявки могат да се изпълняват и графично в инструмента за заявки на pgAdmin.
% Wildcard в pgAdmin
Стъпка 1) Влезте в pgAdmin.
Стъпка 2) В навигационната лента отляво щракнете върху Данни, след което щракнете върху Демонстрация.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
Стъпка 4) Кликнете Изпълнение.
Панелът с резултати показва съответстващите книги:
За да търсите книга с „от“ някъде в името ѝ:
Стъпка 1) Въведете следното в редактора на заявки:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
Стъпка 2) Кликнете Изпълнение.
Панелът с резултатите показва:
_ Wildcard в pgAdmin
Стъпка 1) Влезте в pgAdmin.
Стъпка 2) В навигационната лента отляво щракнете върху Данни, след което щракнете върху Демонстрация.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
Стъпка 4) Кликнете Изпълнение.
Панелът с резултатите показва:
Стъпка 5) Изпълнете втория пример:
- Въведете заявката в редактора на заявки:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
- Кликнете Изпълнение.
Панелът с резултатите показва:
НЕ КАТО в pgAdmin
Стъпка 1) Влезте в pgAdmin.
Стъпка 2) В навигационната лента отляво щракнете върху Данни, след което щракнете върху Демонстрация.
Стъпка 3) За да изброите всички книги, чието име не започва с „Post“, въведете:
SELECT *
FROM
Book
WHERE
name NOT LIKE 'Post%';
Стъпка 4) Кликнете Изпълнение.
Панелът с резултатите показва:
За да изброите книги, чието име не съдържа думата „Made“:
Стъпка 1) Въведете следното в редактора на заявки:
SELECT *
FROM
Book
WHERE
name NOT LIKE '%Made%';
Стъпка 2) Кликнете Изпълнение.
Панелът с резултатите показва:
Изтеглете базата данни, използвана в този урок.























