我想在区分大小写的 SQLite 中运行 SELECT ... LIKE
查询。但我只希望这个查询区分大小写,除此之外别无其他。
我知道有
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,它仍然返回结果返回像 < em>笔记本电脑。
最佳答案
为什么不采用简单的使用方式
PRAGMA case_sensitive_like = true/false;
您想在每个查询前后区分大小写吗?但请注意 - 区分大小写仅适用于 ASCII 字符,不适用于 Unicode,这使得 SQlite 此时不完全符合 UC。
或者,SQlite 允许应用程序实现 REGEXP 运算符,这可能有助于根据 www.sqlite.org/lang_expr.html .
关于php - SQLite:对特定查询执行区分大小写的 LIKE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10590700/