按日期和相关性进行匹配和排序选择?

gv8xihay  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(318)

我使用下面的选择从3列,它的工作,因为它应该但当我试图添加日期到订单,然后我可以´我没弄对。它是一个mysql数据库。

SELECT *,
          MATCH(artikel) AGAINST ("&soktexten&" IN BOOLEAN MODE)* 10 as rel1,
          MATCH(ingress) AGAINST ("&soktexten&" IN BOOLEAN MODE) as rel2,
          MATCH(texten) AGAINST ("&soktexten&" IN BOOLEAN MODE) as rel3
 FROM produkt
 WHERE MATCH (artikel, ingress, texten) AGAINST ("&soktexten&" IN BOOLEAN MODE)
 ORDER BY (rel1)+(rel2)+(rel3) DESC LIMIT 25;

我有3行,其中“artikel”有下面的文本,然后是日期。

Row 1 - "Träbord" - "2019-01-01"
Row 2 - "Träbord aaa" - "2019-01-02"
Row 3 - "Träbord bbb" - "2019-01-03"

我想让它搜索最新的日期匹配的词是在“阿蒂克尔”。
如果我搜索“tr”äbord bbb“或”träbord aaa“这是显示他们在名单的顶部,因为他们应该,但如果我只搜索”träbord“它正在显示”träbord“作为列表中的第一个,我希望它首先搜索最新的日期,然后搜索匹配的单词。
那我该怎么改变呢 ORDER BY (rel1)+(rel2)+(rel3) DESC LIMIT 25 所以它先按日期排序,然后按匹配的词排序?
我用几种不同的 ORDER BY (rel1)+(rel2)+(rel3), date DESC LIMIT 25 等等,但我可以´我没弄对。非常感谢您的意见,谢谢。

jjjwad0x

jjjwad0x1#

我想这正是你想要的:

ORDER BY (rel1 + rel2 + rel3) > 0 DESC,  -- put matches first
         date DESC

相关问题