SQLite:对特定查询执行区分大小写的LIKE查询

JBu*_*ace 5 php sqlite pdo case-sensitive

我想SELECT ... LIKE在SQLite中运行区分大小写的查询.但我只希望这一个查询区分大小写,而不是其他任何问题.

我知道有

PRAGMA case_sensitive_like = boolean;

但这似乎改变了所有LIKE查询.

如何在单个查询中启用区分大小写的LIKE?

示例:我想查询"FuN"以匹配"blah FuN blah",但不是"foo fun bar".

(这是使用PDO在PHP下运行的)

我可以在查询之后切换,然后关闭,但我可以关注可能产生的影响(效率等).有什么危害吗?

我没有对数据库的写访问权限.

(这是在Windows Server 2008下)

我也试过,SELECT id, summary, status FROM Tickets WHERE summary COLLATE BINARY LIKE '%OPS%';但没有做区分大小写的SELECT,它仍然返回结果返回像笔记本电脑.

and*_*dig 7

为什么不采用简单的使用方式

PRAGMA case_sensitive_like = true/false;
Run Code Online (Sandbox Code Playgroud)

在每个查询之前和之后你想成为案例敏感?但要注意 - 区分大小写仅适用于ASCII字符,而不适用于Unicode,这使得SQlite目前还不完全符合UC标准.

或者,SQlite允许应用程序实现REGEXP运算符,根据www.sqlite.org/lang_expr.html可能有所帮助.