#python #postgresql #sqlite #tkinter
#python #postgresql #sqlite #tkinter
Вопрос:
Как я могу выбрать запись из базы данных независимо от того, какой регистр букв используется пользователем в tkinter, маленький или заглавный? В MySQL я использовал ДВОИЧНЫЙ файл, но как насчет PostgreSQL и SQLITE?
Комментарии:
1. Итак, вы хотите, чтобы код python выполнял запрос к базе данных, в котором вы выбираете записи, используя одну букву, которая может быть строчной или прописной в PostgreSQL или SQLITE?
Ответ №1:
В 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;
Комментарии:
1. Спасибо за вашу помощь!