转载:mysql update更新带子查询的实现方式

出自:http://576017120.iteye.com/blog/1947154

mysql中更新时不能直接将更新的表作为查询的表,可以通过临时中间表的形式。

总结一下:

一:单表更新时

例如: update customer set category = 1 WHERE  deleteflag = 0 and name = ‘22‘;

注意不要子查询,mysql是不允许的。

二:带子查询的复杂更新

如:

update tb a,
(select  time,name
from tt )b 
set time4=b.col
where a.name=b.name and a.time1=b.time;

update 时,可以对多个表进行更新

如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id;

update 后面可以做任意的查询,这个作用等同于from;

时间: 2024-10-05 23:25:30

转载:mysql update更新带子查询的实现方式的相关文章

mysql update更新带子查询的实现方式

现在要做一下数据移植,需要更新相关的数据,需要在mysql中更新时不能将更新的表作为查询的表. 总结一下: 一:单表更新时 例如: update customer set category = 1 WHERE  deleteflag = 0 and name = '22'; 注意不要子查询,mysql是不允许的. 二:带子查询的复杂更新 如: update tb a,(select  time,namefrom tt )b set time4=b.colwhere a.name=b.name a

mysql update from 子查询

mssql 子查询更新 update log set uin= b.uinfrom log a,logs bwhere a.accountuin = b.accountuin mysql 不支持 update 子查询更新 找了半天资料 终于搞定了... update `log` a inner join `logs` b on a.`accountuin` = b.`accountuin`set a.`uin` = b.`uin` where a.`accountuin` = b.`accoun

MySQL数据库update更新子查询

比如: UPDATE test.tb_vobile a set a.name = '111 'WHEREa.id = (select max(id) id from test.tb_vobile) 报错: [SQL]UPDATE test.tb_vobile a set a.name = '111 'WHEREa.id = (select max(id) id from test.tb_vobile) [Err] 1093 - You can't specify target table 'a'

mysql update select 从查询结果中更新数据

UPDATE user_online_month_atu a INNER JOIN ( SELECT user_id, sum(c.online_times) as totalSum, LEFT(c.log_date,length(c.log_date) - 2) as date FROM user_online_time_atu c GROUP BY c.user_id ,date ) b ON a.user_id = b.user_id AND a.`month`=b.date SET a.

MySql UPDATE更新语句备忘

在mysql中,不能直接使用set select的结果,必须使用inner join: update tb1 inner join (select `字段` from tb2)  tb3 on tb1.id =tb2.id  set tb1.`字段1` = tb3.`字段1` 在sql server中,我们可是使用以下update语句对表进行更新: update a set a.xx= (select yy from b) where a.id = b.id ; 类似JSON解析,MySql 5

如何实现MySQL随机查询数据与MySQL随机更新数据?

以下的文章主要介绍的是MySQL随机选取数据,对实现MySQ随机查询数据与MySQ随机更新数据的实际操作步骤的描述,以及对其实际操作中所要用到的语句的描述,以下就是对其具体操作步骤的描述. MySQL随机查询数据 以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. SELECT * FROM table_name ORDER BY rand() LIMIT 5; MySQ

MySQL UPDATE 查询

MySQL UPDATE 查询 如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] 你可以同时更新一个或多个字段. 你可以在 WHERE 子句中指定任何条件. 你可以在一个单独表中同时更新数据. 当你需要更新数据表中指定行

雷林鹏分享:MySQL UPDATE 查询

如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] 你可以同时更新一个或多个字段. 你可以在 WHERE 子句中指定任何条件. 你可以在一个单独表中同时更新数据. 当你需要更新数据表中指定行的数据时 WHERE 子句是非常

mysql update修改多条数据

通常情况下,我们会使用以下SQL语句来更新字段值: 复制代码代码如下: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?举个例子,我的博客有三个分类目录(免费资源.教程指南.橱窗展示),这些分类目录的信息存储在数据库表categories中,并且设置了显示顺序字段 display_order,每个分类占一行记录.如果我想重新编排这些