PostgreSQL ХАРЕСВА, Не харесва, Заместващи знаци (%, _ ) Примери

⚡ Умно обобщение

PostgreSQL LIKE съпоставя текст с шаблони, използвайки два заместващи символа - знака за процент и долната черта. Този урок показва как да използвате LIKE и NOT LIKE в SELECT оператори, с работещи примери в psql и pgAdmin за всеки случай.

  • 🔍 Ядро OperaТор: LIKE сравнява колона или израз с шаблон за заместващ символ и връща true при съвпадение.
  • 🌟 Два заместващи символа: % съвпада с нула или повече символа; _ съвпада точно с един символ.
  • Обратно съвпадение: Комбинирайте NOT с LIKE, за да върнете редове, които го правят не съответства на шаблона.
  • 🛠️ Два интерфейса: Изпълнете същите заявки от командния ред на psql или графично в pgAdmin.
  • 🎯 Ескейп герой: Използвайте клаузата ESCAPE, за да намерите съвпадение на буквалните символи % или _ в шаблона.
  • 🤖 AI Boost: Инструментите за бази данни с изкуствен интелект преобразуват нуждите от търсене на обикновен език в модели LIKE и предлагат ILIKE, когато е необходимо съвпадение без отчитане на малки и големи букви.

PostgreSQL ХАРЕСВА, Не харесва, Заместващи знаци (%, _ ) Примери

- 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 таблица:

Примерна таблица с книги, използвана в примерите LIKE

За да намерите книги, чието име започва с „Lear“, изпълнете заявката по-долу.

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

Заявката връща:

LIKE Lear% резултат от заявката, връщащ съответстващи книги

За да намерите книги, чието име съдържа „от“ навсякъде:

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

Заявката връща:

LIKE %by% резултат от заявката със съответстващи книги

PostgreSQL КАТО с уайлдкарда _

- _ знакът съвпада точно с един символ. Следната заявка намира имена, където първият символ е произволна буква, последвана от „earn“ и след това произволен суфикс:

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

Заявката връща:

Резултат от заявка LIKE _earn% със съвпадения с едносимволен префикс

Друг пример — съпоставяне на всеки текст, който завършва с „Beginner“ плюс още един символ:

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

Заявката връща:

LIKE %Beginner_ резултат от заявка, съвпадащ с единичен последен символ

PostgreSQL НЕ КАТО OperaTor

Комбинирайте LIKE с NOT, за да върнете редове, които го правят не съпоставете шаблона. Например, избройте всяка книга, чието име не започва с „Post“:

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

Заявката връща:

НЕ ХАРАСЕ Post% резултат, с изключение на книги, които започват с Post

Само една книга отговаря на условието. Сега избройте всички книги, чието име отговаря на това условие. не съдържат думата „Произведено“:

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

Заявката връща:

НЕ КАТО %Made% резултат, връщащ три съответстващи книги

Три реда удовлетворяват условието.

Използване на LIKE с pgAdmin

Същите заявки могат да се изпълняват и графично в инструмента за заявки на pgAdmin.

% Wildcard в pgAdmin

Стъпка 1) Влезте в pgAdmin.

Стъпка 2) В навигационната лента отляво щракнете върху Данни, след което щракнете върху Демонстрация.

Навигационно дърво на pgAdmin с разгънати бази данни и демо версии

Стъпка 3) Въведете заявката в редактора на заявки:

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

Стъпка 4) Кликнете Изпълнение.

Инструмент за заявки pgAdmin с бутона „Изпълнение“ в лентата с инструменти

Панелът с резултати показва съответстващите книги:

Панел с резултати от pgAdmin за заявка LIKE Lear%

За да търсите книга с „от“ някъде в името ѝ:

Стъпка 1) Въведете следното в редактора на заявки:

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

Стъпка 2) Кликнете Изпълнение.

Инструментът за заявки pgAdmin изпълнява заявка LIKE %by%

Панелът с резултатите показва:

Панел с резултати от pgAdmin за заявка LIKE %by%

_ Wildcard в pgAdmin

Стъпка 1) Влезте в pgAdmin.

Стъпка 2) В навигационната лента отляво щракнете върху Данни, след което щракнете върху Демонстрация.

Навигационно дърво на pgAdmin, показващо дървото на базите данни

Стъпка 3) Въведете заявката в редактора на заявки:

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

Стъпка 4) Кликнете Изпълнение.

Инструментът за заявки pgAdmin изпълнява заявка LIKE _earn%

Панелът с резултатите показва:

Панел с резултати от pgAdmin за заявка LIKE _earn%

Стъпка 5) Изпълнете втория пример:

  1. Въведете заявката в редактора на заявки:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Кликнете Изпълнение.

Инструментът за заявки pgAdmin работи КАТО заявка %Beginner_

Панелът с резултатите показва:

Панел с резултати от pgAdmin за заявка LIKE %Beginner_

НЕ КАТО в pgAdmin

Стъпка 1) Влезте в pgAdmin.

Стъпка 2) В навигационната лента отляво щракнете върху Данни, след което щракнете върху Демонстрация.

Навигационно дърво на pgAdmin за пример NOT LIKE

Стъпка 3) За да изброите всички книги, чието име не започва с „Post“, въведете:

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

Стъпка 4) Кликнете Изпълнение.

Инструментът за заявки pgAdmin работи НЕ КАТО заявка Post%

Панелът с резултатите показва:

Панел с резултати от pgAdmin за заявка NOT LIKE Post%

Допълнителни подробности за резултата от pgAdmin за заявка „НЕ ХАРЕСВА“

За да изброите книги, чието име не съдържа думата „Made“:

Стъпка 1) Въведете следното в редактора на заявки:

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

Стъпка 2) Кликнете Изпълнение.

Инструментът за заявки pgAdmin работи, като заявка НЕ ​​КАТО %Made%

Панелът с резултатите показва:

Панел с резултати от pgAdmin за заявка NOT LIKE %Made%

Изтеглете базата данни, използвана в този урок.

Въпроси и Отговори

LIKE е чувствителен към главни и малки букви, докато ILIKE извършва съпоставяне без чувствителност към главни и малки букви. ILIKE е PostgreSQL разширение. Например, името ILIKE 'lear%' съвпада еднакво с „Learn“ и „LEAR“. Използвайте ILIKE, когато входните регистъри на буквите от потребителя са непредсказуеми.

Използвайте клаузата ESCAPE, за да декларирате escape символ, след което добавете префикса на буквалния заместващ символ. Например, WHERE код LIKE '50!%%' ESCAPE '!' намира стойности, започващи с „50%“, защото удивителният знак екранира знака за процент.

Използвайте LIKE за прости съвпадения на префикси, суфикси или поднизове. Преминете към POSIX regex (~ и ~*), когато имате нужда от класове символи, редуване или квантификатори. Regex е по-мощен, но обикновено по-бавен от LIKE за основни шаблони.

Да. AI Асистенти, като например копилотите за преобразуване на текст в SQL, превеждат подкани като „намери клиенти, чийто имейл съдържа acme“ в име КАТО „%acme%“ и обясняват логиката на заместващите символи, ускорявайки ad-hoc отчетите.

Генеративният изкуствен интелект проверява плана на заявката, препоръчва триграмен индекс (pg_trgm) за търсения с водещ заместващ символ LIKE и пренаписва модели, които предотвратяват използването на индекс. Това превръща пълното сканиране на таблицата в милисекундни търсения на големи PostgreSQL таблици.

Обобщете тази публикация с: