postgreSQL -- регистронезависимый поиск подстроки в строке
Primary tabs
Forums:
Для реализации поиска совпадений в PostgreSQL используется служебное слово LIKE.
-
Поиск по полю name будет выглядеть так:
SELECT * FROM table WHERE name LIKE 'строка';
Кроме того, в PostgreSQL есть оператор ~~, равнозначный LIKE:
SELECT * FROM table WHERE name ~~ 'строка';
-
Регистронезависимый поиск:
SELECT * FROM table WHERE name ILIKE 'строка';
И аналогичный оператор ~~*:
SELECT * FROM table WHERE name ~~* 'строка';
-
Поиск всех строк, в которых нет выражения:
SELECT * FROM table WHERE name NOT LIKE 'строка';
или так:
SELECT * FROM table WHERE NOT (name LIKE 'строка');
-
Поиск всех строк, где выражение является подстрокой
(если вам нужно найти последовательность символов где-то в середине строки):
SELECT * FROM table WHERE name LIKE '%строка%';
Знак % обозначает любую (в том числе и пустую) последовательность символов. Может находиться и с одной и с двух сторон.
Знак _ обозначает один любой символ.
Примеры
Источники
- Log in to post comments
- 15595 reads