• mysql update语句


    UPDATE ClientBankInfo 
    SET 
        status = 3
    WHERE
        sn IN (SELECT 
                sn
            FROM
                zjzc.ClientBankInfo
            WHERE
                cardNo IN (SELECT 
                        cardNo
                    FROM
                        ClientWenJinCardInfo
                    WHERE
                        status = 3));
    					
    					
    UPDATE ClientBankInfo p, (SELECT 
                sn
            FROM
                zjzc.ClientBankInfo
            WHERE
                cardNo IN (SELECT 
                        cardNo
                    FROM
                        ClientWenJinCardInfo
                    WHERE
                        status = 3)) pp
    SET  p.status = 3
    where p.sn=pp.sn
    
    
    关联更新测试;
    mysql>  select * from t1;
    +------+------+
    | id   | name |
    +------+------+
    |    1 | a1   |
    |    2 | a2   |
    |    3 | a3   |
    |    4 | a4   |
    |    5 | a5   |
    |    6 | a6   |
    +------+------+
    6 rows in set (0.00 sec)
    
    mysql>  select * from t2;
    +------+------+
    | id   | name |
    +------+------+
    |    6 | a6   |
    |    5 | a5   |
    +------+------+
    2 rows in set (0.00 sec)
    
    mysql> start transaction;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> update t1,t2 set t1.name='xx' where t1.id=t2.id;
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
    
    mysql>  select * from t1;
    +------+------+
    | id   | name |
    +------+------+
    |    1 | a1   |
    |    2 | a2   |
    |    3 | a3   |
    |    4 | a4   |
    |    5 | xx   |
    |    6 | xx   |
    +------+------+
    6 rows in set (0.00 sec)
    
    mysql>  select * from t2;
    +------+------+
    | id   | name |
    +------+------+
    |    6 | a6   |
    |    5 | a5   |
    +------+------+
    2 rows in set (0.00 sec)
    
    
    如果:
    
    mysql> update t1,t2 set name='xx' where t1.id=t2.id;
    ERROR 1052 (23000): Column 'name' in field list is ambiguous
    
    提示name列是模糊的
    
    /**************
    mysql>  select * from t2;
    +------+------+
    | id   | name |
    +------+------+
    |    6 | a6   |
    |    5 | a5   |
    +------+------+
    2 rows in set (0.00 sec)
    
    mysql> update t1,t2 set name='xx' where t1.id=t2.id;
    ERROR 1052 (23000): Column 'name' in field list is ambiguous
    mysql> update t1,t2 set t2.name='xx' where t1.id=t2.id;
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
    
    mysql>  select * from t2;
    +------+------+
    | id   | name |
    +------+------+
    |    6 | xx   |
    |    5 | xx   |
    

  • 相关阅读:
    Sicily shortest path in unweighted graph
    Sicily connect components in undirected graph
    Sicily 1931. 卡片游戏
    Sicily 1021. Couples
    c++ 高效文本读写
    Sicily 1129. ISBN
    Sicily 1133. SPAM
    Sicily 1282. Computer Game
    小工具?不,这是小工具的集合!
    .Net Core建站(4):FTP发布项目及连接服务器数据库
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199251.html
Copyright © 2020-2023  润新知