优先考虑MySQL v5.6结果

时间:2020-03-26 00:50:05

标签: php mysql

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排在第一位,但是我们希望搜索查询具有优先权。理想情况下,结果将显示最新的红色吉他,最新的白色吉他,最后显示从最新到最早的其余吉他。

0 个答案:

没有答案