gpt4 book ai didi

考虑顺序的mysql查询

转载 作者:行者123 更新时间:2023-11-29 14:54:37 27 4
gpt4 key购买 nike

  • 搜索词a:黑色小石头
  • 搜索词 b:小黑岩
  • 搜索词 c:小石黑

我想设计一个查询,该查询将考虑术语的写入顺序。现在我希望上述三个术语产生相同的结果,但我希望结果的顺序能够反射(reflect)术语的顺序。

我只希望这是有道理的;如果没有,请告诉我。

最佳答案

我可以看到此工作的唯一方法是,如果您将搜索词作为属性在数据库表中按特定顺序分隔。

  • 属性1:黑色
  • 属性2:小
  • 属性3:岩石

在这种情况下,对第一个搜索词“black Small rock”的查询将与属性 1、2、 3 中的“black”匹配,然后对属性执行相同的逻辑或运算搜索词中的其他两个字段。

您的查询实际上相当简单:

SELECT * FROM table
WHERE (attr1 = 'black' OR attr2 = 'black' OR attr3 = 'black')
AND (attr1 = 'small' OR attr2 = 'small' OR attr3 = 'small')
AND (attr1 = 'rock' OR attr2 = 'rock' OR attr3 = 'rock');

此时,您依靠发出此查询的编程语言中的逻辑来按搜索词对显示的数据进行排序,并在其中测试第一个属性(类似 Python 的伪代码):

search_terms = split(search_term, " ")
ordered_results = [
[x for x in results if x["attr1"] == search_terms[0]],
[y for y in results if x["attr2"] == search_terms[1]],
[z for z in results if z["attr3"] == search_terms[2]]
]
for result_set in ordered_results:
for r in result_set:
# Display the result.

关于考虑顺序的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953279/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com