不确定我想做的事是否可行,如果是的话,我脑中碰到了如何做的事情,而搜索找不到答案。
我有一个列,我们将其称为列A。当前为空,我想用列B或列C(随机选择)中的值填充它。
从本质上讲,我想做的,但是行不通的是:
更新MyTable 设置A列= B列或C列 来自MyTable
任何帮助将不胜感激!
答案 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);