我试图理解如何用不同的值更新多行,但我不明白.解决方案无处不在,但对我来说,它看起来很难理解.

例如,在一个查询中进行三次更新:

UPDATE table_users
SET cod_user = '622057'
    , date = '12082014'
WHERE user_rol = 'student'
    AND cod_office = '17389551'; 

UPDATE table_users
SET cod_user = '2913659'
    , date = '12082014'
WHERE user_rol = 'assistant'
    AND cod_office = '17389551'; 

UPDATE table_users
SET cod_user = '6160230'
    , date = '12082014'
WHERE user_rol = 'admin'
    AND cod_office = '17389551'; 

我举了一个例子,但我真的不明白如何进行查询.即:

UPDATE table_to_update
SET cod_user= IF(cod_office = '17389551','622057','2913659','6160230')
    ,date = IF(cod_office = '17389551','12082014')
WHERE ?? IN (??) ;

如果WHERE和if条件中有多个条件,我不完全清楚如何进行查询..有什么 idea 吗?

推荐答案

你可以这样做:

UPDATE table_users
    SET cod_user = (case when user_role = 'student' then '622057'
                         when user_role = 'assistant' then '2913659'
                         when user_role = 'admin' then '6160230'
                    end),
        date = '12082014'
    WHERE user_role in ('student', 'assistant', 'admin') AND
          cod_office = '17389551';

我不明白你的约会方式.日期应使用本机日期和时间类型存储在数据库中.

Mysql相关问答推荐

返回50%的随机结果

MySQL INSERT INSERT ON DIPLICATE KEY UPDATE WITH COMPAY PRIMARY KEY失败

查找表中的唯一记录

在 .NET 6 中使用 Dapper Framework 未能成功连接到 MySql

在MySQL的join查询中进行计算

为什么Mysql会根据查询参数改变查询执行计划?

为大表优化 Django 模型

SQL查询以查找两个特定行的总和

使用索引进行查询优化

MySql中的可见索引和不可见索引是什么

将 wordpress 自定义字段转换为单个数组

查询以从约会表中获取可用空档

在 SQL 中将列添加为 End_date,间隔为 +100 天

sql sum - 处理连接表中的脏重复项

在 WHERE 子句中使用 CASE

Laravel classloader.php 错误打开流失败:没有这样的文件或目录

我如何决定何时使用右连接/左连接或内连接或者如何确定哪个表在哪一侧?

如何将 MySQL 5.7 更新到新的 MySQL 8.0?

MySQL ORDER BY rand(),名称为 ASC

MySQL更新查询与左连接和分组依据