Запрос маленькой / заглавной буквы в PostgreSQL и SQLITE3 - PullRequest
0 голосов
/ 20 марта 2019

Как выбрать запись из базы данных независимо от того, какой регистр букв используется пользователем в tkinter, small или capital?В MySQL я использовал BINARY, но как насчет PostgreSQL и SQLITE?

1 Ответ

0 голосов
/ 20 марта 2019

В MySQL сортировка по умолчанию не чувствительна к регистру.В SQLite это двоичный файл.А в PostgreSQL по умолчанию используется сопоставление, определенное операционной системой для языкового стандарта.

Вы можете принудительно сопоставить регистр без учета регистра, используя lower:

select a from f where lower(a) = lower('myString')

В PostgreSQL вы также можете использоватьнечувствительный к регистру тип данных для столбца, такой как citext

create table a (f citext);

Другой вариант - использовать ilike, который игнорирует регистр.(Обратите внимание, что специальные символы должны быть экранированы с ilike, если вы хотите буквальное совпадение.)

select f from a where f ilike 'myString';

В SQLite вы можете использовать директиву collate nocase в определении столбца.

create table a (f text collate nocase);

Или в запросе:

select f from a where f = 'myString` collate nocase;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...