如何在单条 MySQL UPDATE 语句中更新多行中的列值?
如果 WHERE 子句中指定的条件匹配多行,那么可以对多行中的列值进行更新。在这种情况下,SET 子句将应用于所有匹配的行。
示例
我们有一张表格称为“tender”,如下所示 −
mysql> Select * from tender; +-----------+---------+------+ | tender_id | company | rate | +-----------+---------+------+ | 200 | ABC | 1000 | | 300 | ABD | 5000 | | 301 | ABE | 6000 | | 302 | ABF | 2500 | | 303 | ABG | 2600 | +-----------+---------+------+ 5 rows in set (0.00 sec)
现在,如果我们需要更新 tender_id 大于或等于 300 的“rate”列,可以使用以下查询 −
mysql> UPDATE tender SET rate = rate + 1000 WHERE tender_id >= 300; Query OK, 4 rows affected (0.07 sec) Rows matched: 4 Changed: 4 Warnings: 0 mysql> Select * from tender; +-----------+---------+------+ | tender_id | company | rate | +-----------+---------+------+ | 200 | ABC | 1000 | | 300 | ABD | 6000 | | 301 | ABE | 7000 | | 302 | ABF | 3500 | | 303 | ABG | 3600 | +-----------+---------+------+ 5 rows in set (0.00 sec)
我们从上面的结果集中观察到,tender_id >= 300 的多行中的值已被更新。
广告