SQL。从其他列中选择设置列值

时间:2018-12-03 16:16:55

标签: mysql sql sql-update

不确定我想做的事是否可行,如果是的话,我脑中碰到了如何做的事情,而搜索找不到答案。

我有一个列,我们将其称为列A。当前为空,我想用列B或列C(随机选择)中的值填充它。

从本质上讲,我想做的,但是行不通的是:

更新MyTable 设置A列= B列或C列 来自MyTable

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

您可以使用case。如果要随机,则:

update MyTable
    set Column_A = (case when rand() < 0.5 then Column_B else Column_C end);

以上内容为每行随机分配了任一列。如果您希望所有column_A来自B或C,但都是随机选择的,我想我会使用类似的技术:

update MyTable cross join
       (select @r := rand()) params
    set Column_A = (case when @r < 0.5 then Column_B else Column_C end);