假设SQLite数据库列包含以下值:
U Walther-Schreiber-Platz
使用查询我想查找此记录或任何类似记录,如果用户搜索以下字符串:
walther schreiber
u walther
walther-schreiber platz
然而,我无法弄清楚任何会这样做的查询。特别是如果用户没有输入-
字符。
例:
由于缺少select * from myTable where value like '%walther schreiber%';
,-
不会返回结果。
谢谢, 罗伯特
答案 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%'
等...但是,这确实假设单词顺序是相同的,在你的例子中它是......