MYSQL-从表中选择后如何更新

MYSQL-从表中选择后如何更新,mysql,sql,sql-update,mysql-select-db,Mysql,Sql,Sql Update,Mysql Select Db,我想在选择表后更新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; 我只有两行需要更新 如何更新这些行?您可以在更新查询中使用嵌套的select,注意它将使用相同的值更新您的行 不是每行都有不同的值 UPDATE dvd_copies SET your_colu

我想在选择表后更新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;
我只有两行需要更新
如何更新这些行?

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

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
)

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

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
)

您还可以执行以下操作:

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

您还可以执行以下操作:

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

mysql无法满足您的要求。您需要一些编程语言来处理查询结果并运行更新查询。请使用存储过程。@orangehippo有可能,请查看vhu belowIt的答案看起来我睡了一半,lol;)mysql无法满足您的要求。您需要一些编程语言来处理查询结果并运行更新查询。请使用存储过程。@orangehippo有可能,请查看vhu belowIt的答案看起来我睡了一半,lol;)这非常有用-我只是忘记了我可以在更新查询中使用限制选项。使用ORDERBY关键字可以轻松完成相对复杂的任务:)谢谢这非常有用-我只是忘记了我可以在更新查询中使用LIMIT选项。通过关键字排序可以轻松完成相对复杂的任务:)谢谢