mysql update where 子查询写法

经常遇到要更新一张表,where条件来自另外一张表,直接下面这种写法肯定错的:

update table_a set name='aa' where b_id in (select id from table_b)

又不想先查出来,再一条一条更新,实在有点慢,如何一条语句搞定,可以用下面的写法:

update table_a a,(select id from table_b where name in ('aa')) b set a.name='bb' where a.b_id=b.id and ...也可以加其它条件

### 回答1: MySQL 中 `UPDATE` 语句的语法格式如下: ```mysql UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; ``` 其中: - `table_name`:需要更新的表名。 - `column1 = value1, column2 = value2, ...`:设置需要更新的列和对应的值。 - `WHERE condition`:设置更新的条件。 下面是一些常见的 `UPDATE` 语句写法: 1. 更新单个列的值: ```mysql UPDATE table_name SET column_name = new_value WHERE condition; ``` 2. 更新多个列的值: ```mysql UPDATE table_name SET column1 = new_value1, column2 = new_value2 WHERE condition; ``` 3. 更新所有的行: ```mysql UPDATE table_name SET column1 = new_value1, column2 = new_value2; ``` 4. 更新所有的行并设置新的值: ```mysql UPDATE table_name SET column1 = new_value1 + old_value1, column2 = new_value2 + old_value2; ``` 5. 使用子查询更新: ```mysql UPDATE table_name SET column_name = (SELECT column_name FROM other_table WHERE condition) WHERE condition; ``` 这些写法只是一些常见的用法,实际应用中还有更多的方式可以使用。 ### 回答2: 在MySQL中,我们可以使用多种不同的语法来更新表中的数据。以下是一些常见的方法: 1. 使用简单的UPDATE语句:最基本的语法是使用UPDATE语句,并指定要更新的表名、列名和要更新的值。例如,将名为"students"的表中"age"列的值更新为20,可以使用以下语句: ``` UPDATE students SET age = 20; ``` 2. 使用WHERE子句过滤条件:如果只想更新表中满足特定条件的记录,可以在UPDATE语句中使用WHERE子句来指定条件。例如,将名为"students"的表中"age"列的值更新为20,但只更新性别为"男"的记录,可以使用以下语句: ``` UPDATE students SET age = 20 WHERE gender = '男'; ``` 3. 使用多个列进行更新:可以同时更新多个列的值。例如,将名为"students"的表中"age"列的值更新为20,"gender"列的值更新为"男",可以使用以下语句: ``` UPDATE students SET age = 20, gender = '男'; ``` 4. 使用子查询更新:MySQL还支持使用子查询来更新表中的数据。例如,可以使用子查询查找某个条件下的记录,并将其更新为其他值。例如,将名为"students"的表中"age"列的值更新为子查询返回的最大年龄,可以使用以下语句: ``` UPDATE students SET age = (SELECT MAX(age) FROM students WHERE gender = '男'); ``` 总结来说,以上是一些常见的MySQL更新数据的语法和写法。具体使用哪种方法取决于需要更新的数据和所需达到的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值