在一行中选择两个空列,并在这些列中的任何一列中插入值

时间:2017-03-30 15:03:00

标签: mysql sql

我有sid = xxxx。

还有一张桌子名称' room'和列名sid1,sid2和sid3。 我如何检查哪个列为null并在任何一个空列中插入sid值。

sid1    sid2    sid3    roomno
NULL    2222    NULL    1
5432    NULL    NULL    2

1 个答案:

答案 0 :(得分:0)

如果你只有3列,这也不错。 。

update room
    set sid1 = (case when sid1 is null then $newval else sid1 end),
        sid2 = (case when sid1 is not null and sid2 is null then $newval else sid2 end),
        sid3 = (case when sid1 is not null and sid2 is not null and sid3 is null then $newval else sid3 end)
    where roomno = $roomno;

但是,我强烈建议您创建一个联结表,每个sid一行,每个房间一行。