我需要搜索我存储在sqlite数据库中的这个字符have a good day" ! @ # $ % ^ & * ( ) '
,所以我使用了这个sql
Select ID From Tasks Where '--' || task || '--' || prio || '--' || due_date ||
'--' || [category] || '--' || note || '--' LIKE
'%have a good day" ! @ [#] [$] \% ^ & * ( ) ''%' ESCAPE '\'
我使用了一些转义技术,但是sqlite找不到它,在搜索sqlite数据库时如何正确地逃避这些特殊字符
答案 0 :(得分:2)
您使用的是LIKE
,而不是GLOB
。
唯一需要转义的字符是%
和_
。
此外,表格中的任何NULL
值都会导致LIKE
失败,因此您必须将任何可能的NULL
转换为其他内容:
Select ID
From Tasks
Where '--' || ifnull(task, '') ||
'--' || ifnull(prio, '') ||
'--' || ifnull(due_date, '') ||
'--' || ifnull(category, '') ||
'--' || ifnull(note, '') || '--'
LIKE '%have a good day" ! @ # $ \% ^ & * ( ) ''%' ESCAPE '\'