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

标签 php sqlite pdo case-sensitive

我想在区分大小写的 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/

相关文章:

java - 调用 Rooms inMemoryBuilder 方法时,Room Persistence Library 运行时异常

php - pdo 中可以在查询中查询吗?

php - While Loop 在 MySQL 服务器上使用 PHP

PHP MySQL查询多个类别的多个产品

javascript - 无法使用javascript在数组中获取选择查询的结果

mysql - SQL语句的语法错误

php - 为什么函数接受一个int,但传递一个变量却什么都不做?

php - 在 php 中启用 user_birthday 权限 facebook 生日

php - 使用 Jquery 显示不同输入的唯一 id/class 增量

sqlite - SVN - SQLite - 磁盘 I/O 错误