我有 2 张桌子一张item_key
桌子和一张paypal_ipn_orders
桌子。在 item_key 中,我存储了项目名称和 *sort_id*,这是我用来对项目进行排序的 8 位数字,在 paypal_ipn_orders 表中,我有一个项目名称和一个 *sort_id*。
发生什么了
- 一个订单进入> paypal_ipn_orders,带有 ITEM 名称
- 对 item_key 表执行查询,检查表中匹配的 ITEM 名称
- 如果存在匹配,则将其 8 位值(item_key.SORT_ID)分配给 paypal_ipn_orders.SORT_ID
我知道如何交叉引用这些表以在它们相同时找到匹配的记录,但如果不是大多数项目标题也不是所有的都有轻微的差异,即额外的空格、数字 4 而不是 1、the 或额外的字符。
Query
UPDATE paypal_ipn_orders
SET sort_num = (SELECT sort_id
FROM itemkey
WHERE itemkey.item = paypal_ipn_orders.item_name)
WHERE LOWER(payment_status) = 'completed'
结果
table: paypal_ipn_orders
ITEM SORT_ID
4 Icy Manipulator ~ Ice Age NULL
4 Worldslayer - Mirrodin MtG Magic NULL
1 Karn Liberated - New Phyrexia MtG NULL
4 Blightning ~ Shards 12334234(identical title= a non-null SORT_ID)
table: item_key
ITEM SORT_ID
1 Icy Manipulator + Ice Age 12334231(doesnt exactly match)
4 Worldslayer - Mirrodin Magic 12334332(doesnt exactly match)
4 Karn Liberated - Phyrexia MtG 12334333(doesnt exactly match)
4 Blightning ~ Shards 12334234(perfect match)
期望的结果
table: paypal_ipn_orders
ITEM SORT_ID
4 Icy Manipulator ~ Ice Age 12334231(similar title = match assign value)
4 Worldslayer - Mirrodin MtG Magic 12334232(similar title = match assign value)
1 Karn Liberated - New Phyrexia MtG 12334233(similar title = match assign value)
4 Blightning ~ Shards 12334234(exact title = match assign value)