SQLite 不区分大小写

Ban*_*you 3 sql sqlite

我需要在 SQLite 中选择一些不区分大小写字符串的行。例如:

COLLATE NOCASE 适用于“=”,例如

SELECT id,name from trait WHERE name = "ratio" COLLATE NOCASE
Run Code Online (Sandbox Code Playgroud)

但不适用于“in”,例如

SELECT id,name from trait WHERE name in ("ratio") COLLATE NOCASE
Run Code Online (Sandbox Code Playgroud)

我必须使用“in”来选择多个值,例如

SELECT id,name from trait WHERE name in ("ratio", 'number') COLLATE NOCASE 
Run Code Online (Sandbox Code Playgroud)

我应该如何更改我的 SQL 脚本?感谢您的任何建议。

CL.*_*CL. 8

COLLATE NOCASE 必须直接出现在它修改的表达式之后。

写入时name in ("ratio", 'number') COLLATE NOCASE,排序规则应用于比较结果,即数字 0 或 1;排序规则在那里没有影响。

IN 运算符在其左侧使用表达式的排序规则,因此必须在此处应用排序规则:

... WHERE name COLLATE NOCASE IN ('ratio', 'number')
Run Code Online (Sandbox Code Playgroud)


DNa*_*Nac 3

怎么样

SELECT id,name 
FROM trait 
WHERE UPPER(name) IN ("RATIO")
Run Code Online (Sandbox Code Playgroud)