我想通过字符串匹配从sqlite3数据库选择记录。但是如果我在where子句中使用'=',我发现sqlite3是区分大小写的。有人能告诉我如何使用字符串比较不区分大小写吗?


当前回答

这对我很有效。 从表_name中选择测试名

其他回答

SELECT * FROM ... WHERE name = 'someone' COLLATE NOCASE

这不是特定于sqlite,但你可以这样做

SELECT * FROM ... WHERE UPPER(name) = UPPER('someone')

如果列的类型是char,那么你需要用空格来附加你正在查询的值,请参考这里的问题。除此之外,还可以使用COLLATE NOCASE或其他解决方案(upper()等)。

可以使用like查询将各自的字符串与表值进行比较。

Select column name from table_name where column name like '各自的比较值';

简单地说,你可以在SELECT查询中使用COLLATE NOCASE:

SELECT * FROM ... WHERE name = 'someone' COLLATE NOCASE