如何从Android查询SQLite数据库中的类似记录?

时间:2011-05-04 19:52:38

标签: android sqlite

假设SQLite数据库列包含以下值:
U Walther-Schreiber-Platz

使用查询我想查找此记录或任何类似记录,如果用户搜索以下字符串:

  • walther schreiber
  • u walther
  • walther-schreiber platz
  • [任何其他类似的字符串]

然而,我无法弄清楚任何会这样做的查询。特别是如果用户没有输入-字符。

例:
由于缺少select * from myTable where value like '%walther schreiber%';-不会返回结果。

谢谢, 罗伯特

1 个答案:

答案 0 :(得分:1)

所以,正如我在评论中所说,我认为你可以查询:

select * from myTable where LOWER(value) like <SearchValue>

我假设您是以编程方式从用户那里收集<SearchValue>,因此可以执行以下操作:<SearchValue>需要:用户的搜索字符串,经过适当清理以避免SQL injection attacks,转换为小写,所有空格都转换为'%',以便它们匹配零个或多个字符...

所以你会(例如):

select * from myTable where LOWER(value) like '%walther%schreiber%'
select * from myTable where LOWER(value) like '%walther-schreiber%platz%'

等...但是,这确实假设单词顺序是相同的,在你的例子中它是......