如何将值列表添加到MySQL列中的列中?

问题描述 投票:-1回答:2

我有一张名为books的表和一个名为price的列。如何更新该列中的所有值?以下是我写的查询。

INSERT INTO `books`(`price`)
VALUES (176.00,
        337.00,
        234.00,
        180.00,
        135.00,
        72.00,
        72.00,
        81.00,
        135.00,
        113.00,
        162.00);

目前这是y表的外观。

| Book ID | Price |
|---------|-------|
| a       |       |
| b       |       |
| c       |       |
| d       |       |

这就是我想要的样子。

| Book ID | Price |
|---------|-------|
| a       | 12    |
| b       | 13    |
| c       | 14    |
| d       | 15    |

任何人都可以建议我应该如何修改查询?我也可以删除现有列并创建一个新列。

mysql sql
2个回答
1
投票

你可以用它。

INSERT INTO `books`(`price`) VALUES (176.00), 
(337.00), (234.00), (180.00), (135.00), (72.00), (72.00), (81.00), (135.00), (113.00), (162.00);

如果要更新,还需要源数据的id值。如果你有id也可以使用这种方法。

CREATE TABLE `temp`(id int, `price` decimal(18,2));

INSERT INTO `temp`(`id`, `price`) VALUES 
(1, 176.00), 
(2, 337.00), 
(3, 234.00), 
(4, 180.00), 
(5, 135.00), 
(6, 72.00), 
(7, 72.00), 
(8, 81.00), 
(9, 135.00), 
(10, 113.00), 
(11, 162.00);


UPDATE `books` 
INNER JOIN `temp` ON `books`.`id` =  `temp`.id
SET `books`.`price` = `temp`.`price`;


INSERT INTO `books`(`price`)
SELECT  `price` FROM `temp` 
WHERE NOT EXISTS( SELECT * FROM `books` WHERE `books`.`id` =  `temp`.`id`);

1
投票

您可以针对您的问题尝试此解决方案:

表结构:

CREATE TABLE books(price DECIMAL(20,6)) #ENGINE=MyISAM;


INSERT INTO `books`(`price`)
VALUES (176.00), (337.00), (234.00), (180.00), (135.00), (72.00), (72.00), (81.00), (135.00), (113.00), (162.00);


SELECT *
FROM books;

你也可以参考sqlfiddle

我希望它会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.