レーベンシュタイン距離と比率のソースコードを使用してmysqlユーザー関数を作成しました。2つのレコードを比較しており、75%の一致に基づいて、レコードを選択します。
- 注文はタイトル
paypal_ipn_orders
付きでテーブルに表示されますITEM
- クエリがテーブルに対して実行され、同様
itemkey
に呼び出されたレコードで75%の一致が検出されますITEM
- 75%のタイトルが一致する場合、テーブルからテーブルに8桁の数字が割り当て
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行目で失敗しています。それが機能する場合、サブクエリは複数の行を返すことを示しています。正しい結果を返すように修正する方法がわかりません。これを機能させる方法がわかりません。