gpt4 book ai didi

MYSQL:更新现有列中的所有值

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:06 25 4
gpt4 key购买 nike

我有一个 mysql 表,如下所示:

>     +-------+-------+-------+--------+---------------+-------------+
> | score | likes | views | orders | image_ratings | part_number |
> +-------+-------+-------+--------+---------------+-------------+
> | 0 | 2 | 0 | 0 | 0 | 1030-507629 |
> | 0 | 1 | 0 | 0 | 0 | 1070-B265A |
> | 0 | 2 | 0 | 0 | 0 | 1070-B26UY |
> +-------+-------+-------+--------+---------------+-------------+

我想用值 1、2、3(分别)更新所有分数,所以它看起来像这样:

>     +-------+-------+-------+--------+---------------+-------------+
> | score | likes | views | orders | image_ratings | part_number |
> +-------+-------+-------+--------+---------------+-------------+
> | 1 | 2 | 0 | 0 | 0 | 1030-507629 |
> | 2 | 1 | 0 | 0 | 0 | 1070-B265A |
> | 3 | 2 | 0 | 0 | 0 | 1070-B26UY |
> +-------+-------+-------+--------+---------------+-------------+

我想在一条语句中执行此更新,但不知道如何操作。我在想

UPDATE table1 SET score = (1,2,3);

但是这不起作用。

最佳答案

我怀疑这是你打算做的,但如果你想向分数列添加一组递增的值,你可以使用以下语句来实现:

ALTER TABLE table1 ADD COLUMN `temp` int key auto_increment;
UPDATE table1 SET score = temp;
ALTER TABLE table1 DROP COLUMN temp;

如果您只是尝试为多行更新一列而不是基于其他列值,而是使用您的应用程序中的值,则需要创建多个查询。 MYSQL 需要知道哪些列会受到影响,它不能只依赖于它们在表中的存储顺序而没有任何其他值。

如果您试图在一个查询中执行此操作以保持与数据的一致性,我建议使用“START TRANSACTION;”在您的一组更新之前,检查每个更新是否成功,然后运行“提交;”在最后。

关于MYSQL:更新现有列中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com