mysql - 使用两个不同的 WHERE 条件更新 MySQL 中的两个表

标签 mysql

我目前对两个数据库有两个查询。第一个将给定 user_id 的所有值设置为 0,第二个将每个用户的排名更新为 1。

UPDATE table_1
JOIN table_2 ON table_1.user_id = table_2.user_id
SET table_1.value = 0,
table_2.total_value = 0
WHERE table_2.user_id = %s AND table_1.user_id =%s

UPDATE table_1
JOIN table_2 ON table_1.user_id = table_2.user_id
SET table_1.value = 555,
table_2.total_value =1555
WHERE table_1.rank =1

我想将它们整合在一起,这可能吗..?

最佳答案

UPDATE table_1
JOIN table_2 ON table_1.user_id = table_2.user_id
SET table_1.value = case when table_2.user_id = %s AND table_1.user_id =%s 
                         then 0
                         else table_1.value
                    end,
    table_1.value = case when table_1.rank =1 then 555 else table_1.value end,
    table_2.total_value = case when table_2.user_id = %s AND table_1.user_id =%s 
                               then 0
                               else table_2.total_value 
                          end,
    table_2.total_value = case when table_1.rank =1 then 1555 else table_2.total_value end
WHERE 
(
  table_2.user_id = %s AND table_1.user_id =%s
)
OR table_1.rank =1

关于mysql - 使用两个不同的 WHERE 条件更新 MySQL 中的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640398/

相关文章:

Mysql SELECT 查询计算两个日期剩余的小时数

mysql - 聪明的sql Join写法

php - 引号和 mysql 插入的问题

mysql - 如何在同一个查询中两次连接 1 个表并将结果分开

mysql - 将重复显示为 1 所需的 SQL 语句

MySQL 全文搜索主题标签(包括索引中的 # 符号)

mysql - 是否可以在一台主机上运行多个 MySQL 从服务器?

php - 每个搜索结果都需要谷歌分析

mysql - 更改mysql中日期的格式

mysql - Yii1相当于Sql查询