Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 перестал работать регистронезависимый запрос  [new]
trom
Member

Откуда:
Сообщений: 506
База данных с кодировкой UTF8
PostgreSQL 9.2.24
Записи все на русском

После переноса со старого сервера, перестал работать регистронезависимый запрос

SELECT * FROM produckts where name ilike 'ма%';

В базе все идет с большой буквы и такой запрос выдает 0 строк

пробовал так же с
SELECT * FROM produckts where LOWER(name) ilike 'ма%';

в чем проблема? на предыдущем сервере работало, сейчас работает только если первая буква заглавная передается прямо в запросе
13 апр 21, 03:00    [22307919]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
trom,

сделайте на новом сервере
select LOWER('Ма');
и покажите результат

и покажите что \l+ по вашей базе дает на новом сервере (и если есть - на старом)


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
13 апр 21, 09:00    [22307981]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
trom
Member

Откуда:
Сообщений: 506
Maxim Boguk,

на новом сервере запрос SELECT LOWER('Ма') FROM produckts; дает


lower
Ма
Ма
Ма


на старом сервере запрос дает

lower
ма
ма
ма

Сообщение было отредактировано: 14 апр 21, 06:41
14 апр 21, 06:47    [22308568]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
trom,

Кодировка в новой базе неверно настроена.
Как именно неверно будет понятно после того как вы \l+ результаты с обоих серверов покажите.
Ну или сами посмотрите какой encoding / collate / ctype стоит

SELECT d.datname as "Name",
       pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
       pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
       d.datcollate as "Collate",
       d.datctype as "Ctype",
       pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges",
       CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
            THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
            ELSE 'No Access'
       END as "Size",
       t.spcname as "Tablespace",
       pg_catalog.shobj_description(d.oid, 'pg_database') as "Description"
FROM pg_catalog.pg_database d
  JOIN pg_catalog.pg_tablespace t on d.dattablespace = t.oid
ORDER BY 1;




--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
14 апр 21, 11:23    [22308669]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
trom
Member

Откуда:
Сообщений: 506
Maxim Boguk,
это на новом сервере где проблема, БД где вся база называется cal
https://c2n.me/4bHlcwd

как исправить кодировку на работающей базе?
15 апр 21, 04:36    [22309135]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
trom
Maxim Boguk,
это на новом сервере где проблема, БД где вся база называется cal
https://c2n.me/4bHlcwd

как исправить кодировку на работающей базе?


1)вы бы текстом такие вещи что ли присылали... я обычно не открываю случайные url.

2)НИКАК (во всяком случае на вашем уровне знаний)... только dump/restore или slony/logical на новую базу

Если хотите приключений с риском убить данные то можете попробовать почитать вот этот тред
https://www.postgresql.org/message-id/flat/a2a8115b-51d2-a931-5c1e-55df2a061758@mail.ru
но приключений там собрать можно преизрядно....

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
15 апр 21, 10:37    [22309214]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
trom
Member

Откуда:
Сообщений: 506
Maxim Boguk,

Если делать новую базу, то какую именно ставить кодировку итд чтобы было все правильно?
15 апр 21, 15:05    [22309388]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
trom
Maxim Boguk,

Если делать новую базу, то какую именно ставить кодировку итд чтобы было все правильно?





List of databases
Name | Encoding | Collate | Ctype
---------------+-----------+-------------+------------
somedb | UTF8 | ru_RU.utf8 | ru_RU.utf8



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
15 апр 21, 21:40    [22309560]     Ответить | Цитировать Сообщить модератору
 Re: перестал работать регистронезависимый запрос  [new]
trom
Member

Откуда:
Сообщений: 506
Maxim Boguk,

помогло спасибо!
17 апр 21, 14:50    [22310189]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить