mysql - 选择一行中的两个空列并在其中任意一列中插入值

标签 mysql sql

我有 sid = xxxx。

还有一个表名为“room”、列名为 sid1、sid2 和 sid3 的表。 我如何检查哪一列为空并在这些空列中的任一列中插入 sid 值。

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

最佳答案

如果您只有 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 一行,每个房间一个。

关于mysql - 选择一行中的两个空列并在其中任意一列中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121588/

相关文章:

mysql - 如何在 mysql 5.7 中使用 sum over partition (without window function)

sql - 在 postgres 中创建一个范围

PHP:如何将mysql到excel文件保存到目录而不提示用户下载

mysql - 使用充满数据的数据库从 tinyint 更改为 smallint

SQLite 语法的 MySQL 语法

sql - pgAdmin III 的错误行为?

php - 当数据匹配列中的数字范围时递增并显示数组

javascript - 使用 sequelize 查找 "modelA"的所有实例,但没有关联的 "modelB"实例

sql - 如何在 SQL Server 中获取今天的第一个小时?

sql - 在 Oracle 中的字符串中修剪空格(新行和制表符空间)