Size: a a a

pgsql – PostgreSQL

2021 June 10

M

Malyshev in pgsql – PostgreSQL
А как
источник

TT

Terminator T-800 in pgsql – PostgreSQL
нужно вытащить так, чтобы подходило по структуре твоего бд в приложении. Стандартно делают через Union Select, а запрос зависит от твоей бд.Сначал вытащишь нужную таблицу, из нее 2 нужные колонки, а дальше строки
источник

M

Malyshev in pgsql – PostgreSQL
Ок спасибо большое
источник

DS

David Shiko in pgsql – PostgreSQL
Всем првиет!
Подскажите пожалуйста есть в postgres оператор LIKE для нескольких слов в строке.
Например я пытаюсь найти все ФИО, где есть паттерн иван

test_db_name=# TABLE users;
-[ RECORD 1 ]----+-------------------------------------------------------------
id               | 1
phone_number     | +71234567804
email            |
login            | admin
full_name        | Иван Иванович Иванов

Мой запрос сейчас выглядит так:
test_db_name=# SELECT * FROM users WHERE full_name LIKE 'Иван';

Разумеется он отрабатывает некорректно
источник

D

Dmitriy in pgsql – PostgreSQL
SELECT * FROM users WHERE full_name LIKE '%Иван%';
источник

D

Dmitriy in pgsql – PostgreSQL
Ну и я бы на всякий случай юзал ILIKE
источник

PC

Pavel Chernoskutov in pgsql – PostgreSQL
источник

PC

Pavel Chernoskutov in pgsql – PostgreSQL
'%Иван%', но в данном случае индексы использоваться не будут
источник

DS

David Shiko in pgsql – PostgreSQL
@dimuska139 Pavel Спасибо!
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
select upper(column_name) from information_schema.columns
подскажите, пожалуйста, почему в данном случае русские буквы к верхнему регистру не переводятся?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Потому что это view на основании pg_attribute, column_name — это pg_attribute.attname, а его тип — name, у которого есть вот такие "приятные особенности" в поведении, см. https://www.postgresql.org/docs/current/datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE
источник

V

Vasiliy in pgsql – PostgreSQL
upper(column_name::text) ?
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
нет, так не работает
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
английские-то переводит, а русские - нет... каковы варианты решения такой проблемы?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
SELECT upper(column_name COLLATE "ru_RU") FROM information_schema.columns;
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
ERROR:  collation "ru_RU" for encoding "UTF8" does not exist
LINE 1: SELECT upper(column_name COLLATE "ru_RU") FROM information_s...
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Какая OS/дистрибутив?
Впрочем, если у самой базы "русский" collation (да и не только, многие utf8 collations тоже сойдут), то upper(column_name COLLATE "default") должно работать.
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
select * from pg_settings where name like 'lc_%' показывает setting en_US.utf8 - видимо, в этом дело, потому как английские переводит
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Ну так и что, русских collations у Вас нет?
В общем, см. \dOS и \l про эту базу.
источник