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

标签 android sqlite

假设一个 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/

相关文章:

java - 获取所有行 SQLite Android Studio

c# - 如何将 C# 应用程序与 SQLite 数据库连接

c++ - 如何使用 QSqlQueryModel 在 QTableView 中显示多个选择的结果

mysql - 从三个独立的表中收集数据,sql

android - 如果设备关闭,Alarmmanager 不会触发第一个警报

java - 在android中比较和匹配两个声音

android - React native 无法使用 android 模拟器连接到 react-devtools

android - 您上传的 APK 或 Android App Bundle 的部分文件签名信息无效或缺失

c - sqlite 内存数据库和多线程

Python Psycopg 执行脚本方法