【问题标题】:Search matching prefix of every word in field in sqlite在sqlite中搜索字段中每个单词的匹配前缀
【发布时间】:2013-09-06 16:44:48
【问题描述】:

我需要编写SELECT 语句来选择行,其中来自某个字段的任何单词的前缀都与给定的模式匹配。我正在使用 sqlite,但这是一个普遍的问题。
我想出了两个想法:

SELECT (...) FROM table WHERE field LIKE 'phrase%' OR field LIKE '% phrase%'

SELECT (...) FROM table WHERE ' ' || field LIKE '% phrase%'

两者看起来都不那么优雅,当我在一个 SELECT 中使用更多 ... OR ... LIKE ... 时,它会降低查询性能。

有没有办法更好地处理这个问题?

【问题讨论】:

  • 您的表格中有模式列表还是要硬编码?
  • 它是硬编码的。这是 Android 下的一种搜索字段自动完成功能。
  • 您是在一个字段中搜索多个值(或模式)还是在多个字段中搜索单个值(或模式)?
  • 多个表中的多个字段为一个值。之后我使用UNION

标签: sql sqlite select


【解决方案1】:

一种选择是使用全文模块; http://www.sqlite.org/fts3.html

SELECT * FROM table WHERE field MATCH 'phrase*';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-18
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2020-09-11
    相关资源
    最近更新 更多