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