gpt4 book ai didi

MySQL 产品配对

转载 作者:行者123 更新时间:2023-11-29 06:56:19 24 4
gpt4 key购买 nike

我的系统存储来自许多不同电子商店的产品,我需要根据它们的名称对产品进行配对。例如:

输入: MySQL 表产品

id | name                       | id_seller
1 porsche 911 red edition 1
2 red porsche 911 gt 2
3 icecream 1

期望输出:产品 1 与产品 2 相似的建议。

在第一步中,仅根据常用词的数量提出建议就足够了 - 在这个保时捷示例中,4 个中有 3 个。

更复杂的解决方案将涉及比较单词的顺序,而不仅仅是它们的出现,但我想这不会是微不足道的。

可以仅使用 MySQL 查询及其内置函数来完成,还是必须使用任何复杂的库/附加组件?

最佳答案

这是一个SQLFiddle examplename 列中查找至少有一个常用词的产品对:

select t.id id1, t.name name1, t1.id id2, t1.name  name2 from t
join t t1
where t.id<t1.id
AND
t.name regexp
CONCAT('([[:<:]]',
REPLACE(
TRIM(t1.name),
' ',
'[[:>:]]|[[:<:]]'
),
'[[:>:]])');

如果您需要查找包含至少 N 个常用词的行,您应该创建 tmp 表,将每一行拆分为单词。 Here is an example and stored procedure to do it .对于您的示例,此表如下所示:

id | name                       
1 porsche
1 911
1 red
1 edition
2 red
2 porsche
2 911
2 gt
3 icecream

在这种情况下,您可以使用以下查询来查找至少包含 N 个常用词的 ID(在这种情况下 N=3):

select t1.id,t2.id,count(*)
from tmp t1,tmp t2
where t1.id<t2.id and t1.name=t2.name
group by t1.id,t2.id having count(*)>=3

关于MySQL 产品配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529936/

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