zoukankan      html  css  js  c++  java
  • MySQL数据库update更新子查询

    比如:

    1
    2
    3
    4
    UPDATE test.tb_vobile a
    set a.name = '111 '
    WHERE
    a.id = (select max(id) id from test.tb_vobile)

    报错:

    1
    2
    3
    4
    5
    6
    7
    [SQL]UPDATE test.tb_vobile a
    set a.name = '111 '
    WHERE
    a.id = (select max(id) id from test.tb_vobile)
     

    以下可通过:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    UPDATE test.tb_vobile a
    join
    (select max(id) id from test.tb_vobile) b
    on a.id = b.id
    set a.name = '123 ';
     
    UPDATE test.tb_vobile a ,(select max(id) id from test.tb_vobile) b
    set a.name = '321 '
    WHERE
    a.id = b.id ;

    说明:

    1、update 时,更新的表不能在set和where中用于子查询;
    2、update 时,可以对多个表进行更新(sqlserver不行);
    如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id;
    3、update 后面可以做任意的查询,这个作用等同于from;

    1
    2
    3
    4
    UPDATE test.tb_vobile a
    set a.name = '111 '
    WHERE
    a.id = (select max(id) id from test.tb_vobile)

    报错:

    1
    2
    3
    4
    5
    6
    7
    [SQL]UPDATE test.tb_vobile a
    set a.name = '111 '
    WHERE
    a.id = (select max(id) id from test.tb_vobile)
     
     
    [Err] 1093 - You can't specify target table 'a' for update in FROM clause

     

    以下可通过:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    UPDATE test.tb_vobile a
    join
    (select max(id) id from test.tb_vobile) b
    on a.id = b.id
    set a.name = '123 ';
     
    UPDATE test.tb_vobile a ,(select max(id) id from test.tb_vobile) b
    set a.name = '321 '
    WHERE
    a.id = b.id ;

    说明:

    1、update 时,更新的表不能在set和where中用于子查询;
    2、update 时,可以对多个表进行更新(sqlserver不行);
    如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id;
    3、update 后面可以做任意的查询,这个作用等同于from;

  • 相关阅读:
    洛谷 P5249 [LnOI2019]加特林轮盘赌 概率DP
    c++提高学习笔记——05-c++STLday10
    c++基础学习笔记——04-c++day09
    c++基础学习笔记——04-c++day08
    c++基础学习笔记——04-c++day07
    c++基础学习笔记——04-c++day06
    c++基础学习笔记——04-c++day05
    c++基础学习笔记——04-c++day04
    c++基础学习笔记——04-c++day03
    c++基础学习笔记——04-c++day02
  • 原文地址:https://www.cnblogs.com/whowhere/p/5666814.html
Copyright © 2011-2022 走看看