方法1demo是将class_name赋值为 companyUPDATE work w SET w.class_name = (	SELECT		a.company 	FROM		( SELECT * FROM work ) a 	WHERE	a.id = w.id 	)方法2update table_1 t1,table_2 t2 set t1.column = t2.column where t1.id = t2.pid;
  
   
    MySQL
   
   的分区
   
    表
   
   是一种简单有效的处理极大
   
    数据
   
   
    表
   
   的特性,通过它可以使应用程序几乎很少改动就能达成对极大
   
    数据
   
   
    表
   
   的高效处理,但由于 Rails ActiveRecord 设计上一些惯例,可能导致一些
   
    数据
   
   处理不能利用分区
   
    表
   
   特性,反而变得很慢,在
   
    使用
   
   分区
   
    表
   
   过程中一定要多加注意。
下面以
   
    一个
   
   例子来说明。在 light 系统中,有
   
    一张
   
   
    数据
   
   
    表
   
   是 diet_items, 主要字段是 id, schedule_id, meal_order food_id, weight, calory 等等,它的每一条记录
   
    表
   
   示为用户生成每日的减肥计划(减肥食谱 + 运动计划)中的一条饮食项,平均一条的计划有 10 多条
   
    数据
   
   ,
  
  
   本文实例讲述了
   
    mysql
   
   实现查询
   
    数据
   
   并根据条件
   
    更新
   
   到另
   
    一张
   
   
    表
   
   的方法。分享给大家供大家参考,具体如下:
原本的
   
    数据
   
   库有3张
   
    表
   
   travel_way :旅游线路
   
    表
   
   ,存放线路的具体信息
  traveltag :线路标签
   
    表
   
   ,存放线路目的地等信息
  tagrelation:标签对应
   
    表
   
   ,存放线路和目的地的对应关系
因为业务逻辑的改变,现在要把它们合并为
   
    一张
   
   
    表
   
   ,把traveltag中的目的地信息插入到travel_way中。
首先获取到所有线路对应的目的地,以线路ID分组,合并目的地到一行,以逗号分隔。
 代码如下:SELECT travel_way.id,GROUP_CONCAT(travelta
  
  
   
    MySQL
   
   不允许SELECT FROM后面指向用作
   
    UPDATE
   
   的
   
    表
   
   ,有时候让人纠结。当然,有比创建无休止的临时
   
    表
   
   更好的办法。本文解释如何
   
    UPDATE
   
   
    一张
   
   
    表
   
   ,同时在查询子句中
   
    使用
   
   SELECT.问题描述 假设我要
   
    UPDATE
   
   的
   
    表
   
   跟查询子句是同
   
    一张
   
   
    表
   
   ,这样做有许多种原因,例如用统计
   
    数据
   
   
    更新
   
   
    表
   
   的字段(此时需要用group子句返回统计值),从某一条记录的字段
   
    update
   
   另一条记录,而不必
   
    使用
   
   非标准的语句,等等。举个例子:  代码如下: create table apples(variety char(10) primary key, price int); insert into apples valu
  
  
   在平常的项目中,经常会碰到这样的问题:我需要在
   
    一张
   
   标中同时
   
    更新
   
   和查询出来的
   
    数据
   
   。例如:有如下图
   
    一张
   
   
    表
   
   
    数据
   
   ,现在需要
   
    更新
   
   操作为:把status=1的name值
   
    更新
   
   为id=2的name值
通常情况下我们会想到如下语句来实现这个需求:
   
    UPDATE
   
   tb_testSET NAME = ( SELECT NAME FROM tb_test WHERE id= 2)WHERE `status` = 1
结果却报错,报错信息为:You can't specify target table 'tb_test' for
   
    update
   
   in FROM clause,不能在同一语句中
   
    update
   
   ,select同
  
  
   update
  
  tablea a, tableb b set a.bname=b.name where a.bid=b.id and a.id between 262 and 271
  
   update
  
  tablea a inner join tableb b on a.bid=b.id set a.bname=b.name where a.id between 2.
  
   
    MySQL
   
   中通过关联
   
    Update
   
   将
   
    一张
   
   
    表
   
   的
   
    一个
   
   字段
   
    更新
   
   到另
   
    一个
   
   
    表
   
   中
   
    更新
   
   book_borrow
   
    表
   
   ,设置其中的student_name为student
   
    表
   
   中的name,关联条件为book_borrow.student_id = student_id
student
   
    表
   
   book_borrow
   
    表
   
   其他不同方式
   
    更新
   
   保留原
   
    表
   
   
    数据
   
   的
   
    更新
   
   只会
   
    更新
   
   student
   
    表
   
   中有的
   
    数据
   
   ,student
   
    表
   
   中查不到的
   
    数据
   
   ,在book_borrow
   
    表
   
   中还保持不变,不会
   
    更新
   
   ,相当于内连接
   
    update
   
   book_borrow br,st
  
  有时候,我们需要复制某个字段一整列的
  
   数据
  
  到另外
  
   一个
  
  新的字段中,这很简单,SQL可以这么写:
  
   UPDATE
  
  tb_1 SET content_target = content_source;
大概写法如下:
  
   Update
  
  {your_table} set {source_field} = {object_field} WHERE cause
有Navicat等工具更好,可以直接选中一列
  
   数据
  
  ,拷贝粘贴到你需要的列中。如果是同
  
   一个
  
  
   表
  
  那没什么问题,如果是新
  
   表
  
  ,请保持它们的行数是一致。如果行数不一致,你可以新建
  
   一个
  
  
   表
  
  ,再把列拷贝进去,这样id数也会保持一致。
  
   这个问题可以回答。可以
   
    使用
   
   
    MySQL
   
   的
   
    UPDATE
   
   和JOIN语句来实现。具体步骤如下:
1.
   
    使用
   
   SELECT语句查询两个
   
    表
   
   中不同的
   
    数据
   
   ,可以
   
    使用
   
   LEFT JOIN和WHERE语句来实现。
2.
   
    使用
   
   
    UPDATE
   
   和JOIN语句将查询结果
   
    更新
   
   到另
   
    一张
   
   
    表
   
   中。
具体的SQL语句可以根据具体的
   
    表
   
   结构和
   
    数据
   
   进行调整。
  
  
   mysql DENSE_RANK函数在group by之后获取每组排名,分组排名;RANK/DENSE_RANK/ROW_NUMBER(数据行号)
  
  
   求cuhk offer的贾斯丁: