我正在尝试使用mysql加载带有条件的文件
GIFTCARDS (table):
id| store | amount |
1 | starbucks| |
2 | target | |
3 | starbucks| |
4 | target | |
5 | target | |
6 | target | |
winning.txt (file)
25
10
15
我需要分配"金额"随机。 请注意,有4行" target"但获胜文件包含3行。这意味着将有一个"目标"随机选择的行,其数量为null。每张星巴克卡的金额将使用单独的文件加载。
是否可以使用mysql查询执行此操作?
答案 0 :(得分:1)
使用winning.txt
将winning
加载到load data infile
(表格)中。
然后,您可以在MySQL查询中完成剩下的工作。关键是枚举行并执行join
:
update giftcards gc join
(select @rn := @rn + 1 as x, id
from giftcards cross join
(@rn := 0) vars
where store = 'target'
) gcx
on gc.id = gcx.id join
(select @rnw := @rnw + 1) as x, amount
from winning cross join
(select @rnw := 0) vars
) w
on gcx.x = w.x
set gc.amount = w.amount;