我需要编写SELECT选择行的语句,其中某个字段中的任何单词的前缀与给定的模式匹配。我正在使用 sqlite,但这是一个普遍问题。
我想出了两个想法:
SELECT (...) FROM table WHERE field LIKE 'phrase%' OR field LIKE '% phrase%'
Run Code Online (Sandbox Code Playgroud)
或者
SELECT (...) FROM table WHERE ' ' || field LIKE '% phrase%'
Run Code Online (Sandbox Code Playgroud)
两者看起来都不那么优雅,当我在... OR ... LIKE ...其中使用更多时SELECT,它会降低查询性能。
有没有办法更好地处理这个问题?
一种选择是使用全文模块;http://www.sqlite.org/fts3.html
SELECT * FROM table WHERE field MATCH 'phrase*';
Run Code Online (Sandbox Code Playgroud)