我使用 levenshtein distance 和 ratio 源代码创建了 mysql 用户函数。我正在比较 2 条记录,并根据 75% 的匹配度来选择记录。
- 订单进入
paypal_ipn_orders
带有ITEM
标题的表格 - 对表执行查询以
itemkey
在记录中找到 75% 的匹配项,ITEM
同时调用 itemkey
如果 75% 的标题匹配,它会在表之间分配一个八位数字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 行之间失败了。如果它有效,则表示子查询返回多于一行。我不知道如何修复它以使其返回正确的结果,我只是不知道如何使它工作。