假设一个 SQLite 数据库列包含以下值:
U Walther-Schreiber-Platz
如果用户搜索以下字符串,我想使用查询查找此记录或任何类似的记录:
瓦尔特施赖伯
你会喜欢
walther-schreiber 广场
- [任何其他类似的字符串]
但是我想不出任何可以做到这一点的查询。特别是如果用户没有输入 -
字符。
例子:
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%'
等等...但是,这确实假设词序是相同的,在您的示例中是...
关于android - 如何从 Android 查询 SQLite 数据库中的相似记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5889103/