1

我正在尝试使用 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 行,但获胜文件包含 3 行。这意味着将有一个随机选择的“目标”行,其数量为空。每张星巴克卡的金额将使用单独的文件加载。

是否可以使用 mysql 查询来做到这一点?

4

1 回答 1

1

使用 .加载winning.txtwinning(表)中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;
于 2014-11-10T16:02:20.333 回答