MYSQL 修改:update 表名 set 字段=新值 where 条件;具体示范
时间: 2024-04-10 08:33:04 浏览: 1154
当你需要修改 MySQL 表中的数据时,可以使用 `UPDATE` 语句。下面是一个示例:
假设有一个名为 `users` 的表,其中包含字段 `name` 和 `age`。要将名字为 "John" 的用户的年龄更新为 30 岁,可以使用以下语句:
```sql
UPDATE users
SET age = 30
WHERE name = 'John';
```
这条语句将会在 `users` 表中找到名字为 "John" 的记录,并将其年龄更新为 30。
请注意,你需要替换示例中的表名、字段名、新值和条件来适应你自己的数据库表结构和需求。同时,确保在执行任何更新操作之前备份你的数据,以防止意外修改或数据丢失。
相关问题
mysql> update user set host = '%' where user = 'root'; ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
这个错误是因为你正在尝试将一个已经存在的主键插入到表中。在这种情况下,您可能已经将root用户的host字段更改为“%”,而这个值在表中已经存在于另一个行中。为了解决这个问题,您可以尝试使用DELETE语句删除重复的行,然后再次执行UPDATE语句,或者尝试使用REPLACE语句来替换重复的行。另外,您还可以使用INSERT语句来插入新的行,而不是使用UPDATE语句来更新现有的行。
mysql> update user set host = '%' where user ='root'; ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
这个错误是因为在执行 `update` 语句时,将原来的 `host` 字段值 `'localhost'` 修改为了 `'%'`,导致主键冲突。这是因为在 `user` 表中,`host` 和 `user` 字段共同构成了主键,而 `root` 用户已经存在一条记录,`host` 字段值为 `'localhost'`,所以无法再插入一条 `host` 字段值为 `'%'`,`user` 字段值为 `'root'` 的记录。
解决这个问题的方法是,先删除原来的 `root@localhost` 记录,再插入一条 `root@%` 的记录。具体操作如下:
```sql
mysql> delete from user where user='root' and host='localhost';
mysql> insert into user (host, user, password) values ('%', 'root', 'password');
mysql> flush privileges;
```
上面的操作先删除了原来的 `root@localhost` 记录,然后再插入一条 `root@%` 的记录,最后刷新权限使修改生效。
阅读全文