?
(В коде ? это str.lower())
или
Изначально записывать в lower кейсе
А потом
SELECT * FROM table WHERE key2 = ?
(В коде ? это str.lower())
Так а что по этому вопросу?
второй вариант будет быстрее (не медленнее) в любом случае. Первый может даже в индекс не попасть (хотя вроде можно case insensitive сделать индекс, а сравнение делать, например, через ILIKE или другой case insensitive оператор (тогда не придётся делать LOWER(key) )
search_attribute_1 может иметь разный кейс, но искать нужно игноря его
Тогда можно сделать CREATE INDEX ON <название таблицы> (LOWER(<название колонки search_attribute>)); и тогда первый вариант вполне хорошо будет работать. Не знал кстати, что так можно, но на SO пишут, что можно. https://stackoverflow.com/questions/7005302/how-to-make-case-insensitive-query-in-postgresql
Обсуждают сегодня