PHP 7.3 / MySQL v5.6 MyISAM多查询正在使用BOOLEAN MODE:
我们的数据库中有各种乐器。我们想返回所有吉他的列表,并在结果顶部优先显示红色或白色吉他。
基于波浪号运算符的definition,我们认为这可能是正确的方法。不幸的是查询...
~guitar red white
...结果包括所有乐器,而不仅仅是吉他。看起来(定义中的)“噪音词”意味着该词在搜索查询中被标记为不相关。结果与发送red white
相同。不确定这个值。
我们尝试了其他一些想法...
~(+guitar) red white // also throws out "guitar."
+(~guitar) red white // matches nothing, I guess because we're matching a noise word.
+guitar >(red white) // matches all guitars and doesn't do anything with red or white.
+guitar (>red >white) // same as above.
+guitar +(red white) // matches only guitars that are red or white
以上所有都不给我们所有吉他,红色和白色优先。我们不知道客户在搜索时将键入什么内容,因此红色和白色只是应具有更高优先级的属性的示例。我将努力编写一个特殊列表,以在代码中给予这些属性更多的重视。
肯定有一个简单的解决方案吗?
顺便说一句,我们使用ORDER BY id DESC,所以最新的ID排在第一位,但是我们希望搜索查询具有优先权。理想情况下,结果将显示最新的红色吉他,最新的白色吉他,最后显示从最新到最早的其余吉他。