无论tkinter是小写还是大写字母,无论用户使用哪种大小写字母,如何从数据库中选择记录?在MySQL中,我使用了BINARY,但是PostgreSQL和SQLITE呢?
答案 0 :(得分:0)
在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;