gpt4 book ai didi

mysql - 使用编辑距离比来比较 2 条记录

转载 作者:行者123 更新时间:2023-11-29 08:48:53 25 4
gpt4 key购买 nike

我使用levenshtein距离和比率源代码创建了mysql用户函数。我正在比较 2 条记录,并根据 75% 的匹配度选择该记录。

  1. 订单进入表 paypal_ipn_orders 并带有 ITEM 标题
  2. 针对表 itemkey 执行查询,以在名为 ITEM 的记录中查找 75% 的匹配项
  3. 如果 75% 的标题匹配,则会将表 itemkey 中的八位数字分配给表 paypal_ipn_orders

这是查询

      UPDATE paypal_ipn_orders
SET sort_num = (SELECT sort_id
FROM itemkey
WHERE levenshtein_ratio(itemkey.item, paypal_ipn_orders.item_name) > 75)
WHERE packing_slip_printed = 0
AND LOWER(payment_status) = 'completed'
AND address_name <> ''
AND shipping < 100

我对此进行了几次调整,但在 levenshtein_ratio 部分的第 4 行和第 5 行之间失败了。如果有效,则表示子查询返回不止一行。我不知道如何修复它以使其返回正确的结果,我只是不知道如何使其工作。

最佳答案

SET 上的子查询只能返回一个值。如果 itemkey 包含超过一项且占 item_name 的 75%,您想做什么?下面将使用最佳匹配之一:

UPDATE paypal_ipn_orders
SET sort_num = (SELECT sort_id
FROM itemkey
WHERE levenshtein_ratio(itemkey.item, paypal_ipn_orders.item_name) > 75
ORDER BY levenshtein_ratio(itemkey.item, paypal_ipn_orders.item_name) DESC
LIMIT 1)
WHERE packing_slip_printed = 0
AND LOWER(payment_status) = 'completed'
AND address_name <> ''
AND shipping < 100

关于mysql - 使用编辑距离比来比较 2 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11836462/

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