我使用 LIKE 子句进行全文搜索,文本可以包含“%”。
在 sqlite 数据库中搜索 % 符号的好方法是什么?
我确实尝试过
SELECT * FROM table WHERE text_string LIKE '%[%]%'
但这在 sqlite 中不起作用。
来自 SQLite 文档
如果存在可选的 ESCAPE 子句,则 ESCAPE 关键字后面的表达式必须计算为由单个字符组成的字符串。该字符可在 LIKE 模式中使用以包含字面百分号或下划线字符。转义字符后跟百分号 (%)、下划线 (_) 或转义字符本身的第二个实例分别匹配原义百分号、下划线或单个转义字符。
我们可以通过以下查询实现同样的效果
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
等等
希望这能更好地帮助您。
SELECT * FROM files WHERE parent_path = ? OR parent_path LIKE ? ESCAPE '\'
如果用于类似参数的值包含 % 或 _
,则必须包含 ESCAPE 子句然后对于查询参数,将参数值中所有 % 替换为 \%,将 _ 替换为 \_