Mysql更新并从每个受影响的行中读取一个字段

时间:2015-05-18 03:24:07

标签: mysql insert-update

update Customers set CHECKED=1 where CHECKED=0

我需要阅读的字段CNAME顺便说一句就在同一张桌子上。这可以用一个查询来实现吗?

修改

客户字段是:

ID MEDIUMINT NOT NULL AUTO_INCREMENT

CHECKED TINYINT

CNAME VARCHAR(50)

我需要通过更新的查询阅读每个受影响行中的CNAME字段。

4 个答案:

答案 0 :(得分:0)

在MySQL中,您无法在一个语句中执行SELECTUPDATE

不幸的是,MySQL中没有MS SQL Server提供的OUTPUT clause这样的东西。

如果它需要是原子事务,您可能需要查看MySQL Transactions。它们允许您将多个语句捆绑到一个原子单元中。

答案 1 :(得分:0)

我真的不明白你需要从CNAME读取什么,但以下是有效的SQL。

UPDATE Customers SET CHECKED=1, FIELD2=CNAME WHERE CHECKED=0;

答案 2 :(得分:0)

在简单的情况下,您可以选择数据并在mysql中从同一个表中更新。您需要在查询中使用重复的表。

请参阅此回答:https://dba.stackexchange.com/questions/41261/update-table-based-on-the-same-table

答案 3 :(得分:0)

使用数据适配器解决了每个人的帮助问题。