gpt4 book ai didi

mysql - 分别在列中插入数据 - Mysql

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:15 28 4
gpt4 key购买 nike

我在 mysql 数据库中有一个 user 表,列名 "id"和 "name"。 我想分别在列中插入数据。

我使用以下命令成功地将数据插入第一列。

insert into user(id) values (1),(2),(3);

select * from user;

+------+------+
| id | name |
+------+------+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
+------+------+

在第二列中插入值,例如。

insert into user(name) values ('abc'),('def'),('xyz');

我正在得到结果。

select * from user;

+------+--------+
| id | name |
+------+--------+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| NULL | abc |
| NULL | def |
| NULL | xyz |
+------+--------+

我想要一个解决方案,使我能够从 0 索引向名称列中插入值。结果应如下所示,但在列中单独插入。

+------+--------+
| id | name |
+------+--------+
| 1 | abc |
| 2 | def |
| 3 | xyz |

最佳答案

您应该使用 insert 语句插入新行,并使用 update 语句更新现有行:

update user set name = 'abc' where id = 1;

或者你的情况

update mytable
set name = case id
when 1 then 'abc'
when 2 then 'def'
when 3 then 'xyz'
end
where id in (1,2,3)

或者如果您的 id 是主键,您可以使用 insert ... on duplicate key update 语句:

 insert into user (id, name) 
values (1, 'abc'), (2, 'def'), (3, 'xyz')
on duplicate key
update name = values(name);

示例:

mysql> create table user (id int(11) primary key, name varchar(10) null);
Query OK, 0 rows affected (0.27 sec)

mysql> insert into user (id) values (1),(2),(3);
Query OK, 3 rows affected (0.05 sec)

mysql> insert into user (id, name)
-> values (1, 'abc'), (2, 'def'), (3, 'xyz')
-> on duplicate key
-> update name = values(name);
Query OK, 3 rows affected (0.09 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from user;
+----+------+
| id | name |
+----+------+
| 1 | abc |
| 2 | def |
| 3 | xyz |
+----+------+

关于mysql - 分别在列中插入数据 - Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19925889/

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