繁体   English   中英

查询PostgreSQL和SQLITE3中的小/大写字母

[英]Query for small/capital letter in PostgreSQL and SQLITE3

无论用户在tkinter,small或capital中使用何种字母,我如何从数据库中选择记录? 在MySQL中我使用了BINARY,但是PostgreSQL和SQLITE呢?

在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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM