搜索特殊字符sqlite

时间:2013-09-27 04:35:49

标签: sql sqlite

我需要搜索我存储在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数据库时如何正确地逃避这些特殊字符

1 个答案:

答案 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 '\'