【问题标题】:MYSQL - How to UPDATE after SELECT from a tableMYSQL - 如何从表中选择后更新
【发布时间】:2014-03-31 07:42:43
【问题描述】:

我想在选择表后更新 a 列

SELECT id_copies, id_shop, id_dvd 
FROM dvd_copies
WHERE id_dvd = '001-192.168.1.103-6' AND id_shop='002'
ORDER BY id_copies DESC
LIMIT 2;

我只有 2 行要更新 如何更新这些行?

【问题讨论】:

  • mysql 无法实现您所要求的。您需要一些编程语言来处理查询结果并运行 UPDATE 查询。
  • 使用存储过程。
  • @orangehippo 有可能,请看下面vhu的回答
  • 我好像睡了一半,哈哈;)

标签: mysql sql sql-update mysql-select-db


【解决方案1】:

您还可以执行以下操作:

UPDATE dvd_copies
SET your_column_to_update ='your value'
WHERE id_dvd = '001-192.168.1.103-6' AND id_toko='002'
ORDER BY id_copies DESC
LIMIT 2

【讨论】:

  • 这非常有用 - 我只是忘记了我可以在更新查询中使用 LIMIT 选项。用关键字 order 可以轻松完成相对复杂的任务:) 谢谢
【解决方案2】:

您可以在更新查询中使用嵌套选择,注意它会使用相同的值更新您的行 不是每行都有不同的值

UPDATE dvd_copies 
SET your_column_to_update ='your value'
WHERE id_copies IN(
    SELECT t.id_copies FROM 
    (SELECT id_copies
        FROM dvd_copies 
        WHERE id_dvd = '001-192.168.1.103-6' AND id_toko='002'
        ORDER BY id_copies DESC LIMIT 2
    ) t
)

【讨论】:

    猜你喜欢
    • 2014-08-26
    • 2018-02-24
    • 1970-01-01
    • 2018-12-30
    • 2013-12-23
    • 2012-10-31
    • 2014-09-01
    • 1970-01-01
    • 2016-06-27
    相关资源
    最近更新 更多