如何在sqlite中转义%符号?

问题描述 投票:0回答:3

我使用 LIKE 子句进行全文搜索,文本可以包含“%”。

在 sqlite 数据库中搜索 % 符号的好方法是什么?

我确实尝试过

SELECT * FROM table WHERE text_string LIKE '%[%]%' 

但这在 sqlite 中不起作用。

sqlite
3个回答
13
投票

来自 SQLite 文档

如果存在可选的 ESCAPE 子句,则 ESCAPE 关键字后面的表达式必须计算为由单个字符组成的字符串。该字符可在 LIKE 模式中使用以包含字面百分号或下划线字符。转义字符后跟百分号 (%)、下划线 (_) 或转义字符本身的第二个实例分别匹配原义百分号、下划线或单个转义字符。


2
投票

我们可以通过以下查询实现同样的效果

SELECT * FROM table WHERE instr(text_string, ?)>0

这里:

?  => your search word

示例:

您可以直接输入文字

SELECT * FROM table WHERE instr(text_string, '%')>0

SELECT * FROM table WHERE instr(text_string, '98.9%')>0
等等

希望这能更好地帮助您。


0
投票
SELECT * FROM files WHERE parent_path = ? OR parent_path LIKE ? ESCAPE '\'

如果用于类似参数的值包含 % 或 _

,则必须包含 ESCAPE 子句

然后对于查询参数,将参数值中所有 % 替换为 \%,将 _ 替换为 \_

© www.soinside.com 2019 - 2024. All rights reserved.