考虑一下:
select * from cats where contains(catname, '"Furry Pudding"')
它将完全匹配包含“Furry Pudding”的条目。
接下来,考虑一下:
select * from cats where contains(catname, '"A B C"')
这应该匹配任何被称为 AB C 的猫。它不做任何部分匹配,我相信它不应该。
现在考虑一下:
select * from cats where contains(catname, '"A B C Furry Pudding"')
您可能希望只匹配名称为“ABC Furry Pudding”的猫,但它似乎忽略了 ABC 并产生与第一个查询相同的结果。
谁能解释为什么会发生这种情况?例如,如果我们有一只名叫 Mr. T 的猫,它会匹配所有包含“Mr”的猫,而完全忽略 T(搜索不应该进行任何部分匹配,所以 Mr T 应该只匹配那些有一个名字是T。