【发布时间】: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。