我正在尝试使用以下查询查询 Sqlite 数据库,其中考虑到 2 个字段,例如标题和作者:
SELECT * FROM books WHERE title MATCH 'Author:<author>* <title>*'
它在不包含空格(即单个单词)时起作用<author>
,<title>
但是当我尝试例如对于作者:“mark tw”时,它不会匹配任何行,因为有 2 个单词。
那么,是否可以对由多个单词组成的短语查询使用前缀?
我正在尝试使用以下查询查询 Sqlite 数据库,其中考虑到 2 个字段,例如标题和作者:
SELECT * FROM books WHERE title MATCH 'Author:<author>* <title>*'
它在不包含空格(即单个单词)时起作用<author>
,<title>
但是当我尝试例如对于作者:“mark tw”时,它不会匹配任何行,因为有 2 个单词。
那么,是否可以对由多个单词组成的短语查询使用前缀?
应针对整个表进行具有列规范的搜索,如果冒号后没有空格,则在这种情况下无法正确解析短语搜索:
... WHERE books MATCH 'Author: "mark tw*" title*'
不能工作。特定列上的匹配此时不能包含空格。match column1: "abc 123" 之类的内容只匹配其中包含 "abc 123" 的任何列,因为查询解析器没有将 "abc 123" 视为 column1 的参数,而是将其视为不同的过滤器(它认为它就像 column1:anything “ABC 123”)。对我来说似乎是一个疏忽。column1:"abc 123"(没有空格)不返回任何内容。column1:abc 123 确实返回 column1 与 abc 匹配且其他列之一包含 123 的行。