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

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


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


但是我无法找出任何可以做到这一点的查询。特别是如果用户未输入-字符。

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

谢谢,
罗伯特

最佳答案

因此,正如我在评论中所说,我认为您可以按照以下方式进行查询:

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%'


等等...但是,这确实假设单词order相同,在您的示例中是...

08-04 07:26