item_key
テーブルとテーブルの2つのテーブルがありpaypal_ipn_orders
ます。item_key にはアイテム名と、アイテムの並べ替えに使用する 8 桁の数字である *sort_id* を格納します。paypal_ipn_orders テーブルには、アイテム名と *sort_id* があります。
何が起こるのですか
- ITEM 名を持つ注文が Paypal_ipn_orders に入ります
- item_key テーブルでクエリが実行され、テーブル内の一致する ITEM 名がチェックされます。
- 一致が存在する場合、その 8 桁の値 (item_key.SORT_ID) を paypal_ipn_orders.SORT_ID に割り当てます。
テーブルが同一の場合に一致するレコードを見つけるためにテーブルを相互参照する方法を知っていますが、ほとんどのアイテムタイトルではないにしても、すべてがわずかな差異、つまり余分なスペース、1 ではなく数字の 4、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)