mysql更新where子句子查询中的2列

标签 mysql

在下表中,我需要更新列 brake_pad,如下所示:

Table ct_maint(simplified). 
Primary key is the combined model_id/fuel columns.

model_id    fuel    brake_pad
   1        gas         0
   1        diesel      0
   2        gas         0
   3        diesel      0
   4        gas         0
   4        diesel      0
   5        diesel      0
   6        gas         0
   6        diesel      0  
   ......

告诉我要更新哪个 brake_pad 的查询是:

SELECT models.model_id, motors.fuel FROM models
INNER JOIN versions USING(model_id)
INNER JOIN versiontrim USING(version_id)
INNER JOIN motors USING(motor_id)
WHERE trim_id IN(502, 506)
GROUP BY model_id, fuel

此查询给出的结果集如下:

model_id      fuel
   1          diesel
   3          diesel
   4          gas
   4          diesel
   6          gas

所以,我想,

UPDATE ct_maint SET brake_pad=1000 WHERE model_id AND fuel IN( SELECT.....)

但在 mysql 提醒我之前很久就停止了。

感谢任何帮助。

最佳答案

试试这个查询:

UPDATE ct_maint SET brake_pad=1000 WHERE (model_id, fuel) IN ( SELECT.....)

关于mysql更新where子句子查询中的2列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238566/

相关文章:

sql - 浏览 SQL-Dump 文件而不将其导入 DBMS?

mysql - 带有 datediff 和来自 db 的列的 sql 语句

php - UTF-8贯穿始终

mysql - 子查询返回多于 1 行

mysql - 相似字符的唯一约束违规

php - 使用 php 脚本保存数据并在发生错误时保留后变量

mysql - 修复查询 codeigniter 模型语法错误中的错误

c# - 从数据库中获取一条记录而不是多条记录

mysql - 在两个不同mysql数据库的表之间复制数据

php - 从 Pchart 中的第 n 个索引开始绘制图表