假设一个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相同,在您的示例中是...