首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql 1093 - You can‘t specify target table ‘a‘ for update in FROM clause

    报错意思是:不能在from子句中指定要更新的目标表 a 如: customer 银行客户信息表 bankInfo 银行账户 修改张三的银行卡密码为123456: update bankInfo...as a set `password`=123456 where a.idCard=(select b.idCard from bankInfo as b where NameId= (select...NameId from customer where `Name`='张三')); # 不能在from子句中指定要更新的目标表 执行上面SQL语句时出现这个错误,是因为 在更新这个表和数据的同时又去查询这个表数据...UPDATE bankInfo AS a SET `password`=123456 WHERE a.idCard=(SELECT b.idCard FROM (SELECT * FROM bankInfo...WHERE NameId=(SELECT NameId from customer WHERE `Name`='张三')) AS b); 这样就可以进行表数据更新啦~ 来源:https://blog.csdn.net

    65320

    为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?

    统计一张表的总数量,是我们开发中常有的业务需求,通常情况下,我们都是使用 select count(*) from t SQL 语句来完成。...标题:为什么select count( * ) from t,在 InnoDB 引擎中比 MyISAM 慢?也是高频面试题。...知道了 InnoDB 和 MyISAM 引擎 count(*) 实现之后,为什么select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?...如果 统计数量 SQL 语句为:select count(*) from t where x = 23,那么在 MyISAM 中就不一定比 InnoDB 快了。...MySQL 就利用了这一特性,在 InnoDB 中执行 select count(*) from t语句时,MySQL 优化器会找到最小的那棵索引树来遍历,这样可能就可以减少加载次数,在一定程度上提升了

    38220

    为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?

    统计一张表的总数量,是我们开发中常有的业务需求,通常情况下,我们都是使用 select count(*) from t SQL 语句来完成。...标题:为什么select count( * ) from t,在 InnoDB 引擎中比 MyISAM 慢?也是高频面试题。...知道了 InnoDB 和 MyISAM 引擎 count(*) 实现之后,为什么select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?...如果 统计数量 SQL 语句为:select count(*) from t where x = 23,那么在 MyISAM 中就不一定比 InnoDB 快了。...MySQL 就利用了这一特性,在 InnoDB 中执行 select count(*) from t语句时,MySQL 优化器会找到最小的那棵索引树来遍历,这样可能就可以减少加载次数,在一定程度上提升了

    36530

    T-SQL学习笔记(索引贴)

    没有涉及高级话题 适合有一点T-SQL知识 但想深入了解T-SQL的人看 我觉得例子有很大的借鉴意义 如果对哪篇文章有疑问, 可以在文章下留言 我会尽快回复的 真诚的希望能和朋友们讨论也希望高人多批评...   2:outer join    3:full join cross join    4:union    5:子查询返回单个值   6:子查询返回多个值   7:any some 和 all   ...   4:游标的滚动   5:静态游标   6:键驱动的游标   7:动态游标   http://www.cnblogs.com/liulun/articles/1373352.html 附件: T-SQL...中常用的函数 http://www.cnblogs.com/liulun/articles/1346212.html T-SQL学习笔记CHM版 https://files.cnblogs.com.../liulun/T-SQL学习笔记.rar ----------------------------------------------------------------------------- 10.28

    53410

    select * from t_student where class between 200 and 300需要执行几次索引树的搜索操作,会扫描多少行

    表初始化语句如下: CREATE TABLE `t_student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT...(`id`), index class_idx(class) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into t_student...class) values('小明', '100'),('小詹', '200'),('小龙', '300'),('小红', '400'),('小哈', '500'),('小屁孩', '600'); 执行查询的SQL...语句如下: select * from t_student where class between 200 and 300; 我们一起来看看这条 SQL 查询语句的执行流程: 在 class_idx 索引树上找到...覆盖索引 如果执行的语句是 select id from t_student where class between 200 and 300,这时只需要查 ID 的值,而 ID 的值已经在 class_idx

    27520

    【SQL实用技巧】update,inner join与select语句的联合使用

    在实际操作数据库的时候,经常使用将update和select结合使用,例如使用select统计数据,然后update到对应的表,按照常规的实现方式,先select出来对应的数据,然后再执行update语句...先建两个测试表table1和table2,两个表的数据很简单,其记录条数分别为2和4,具体如下: ​假如现在要统计table1的id对应在table2中有多少条记录,保存在total字段里,这是经常会遇到的需求...如果按照常规的实现,就会先用select语句从table2中统计好数值,然后再写一个update语句更新到table1中,更新语句还得循环。...可以如下实现: ​执行完成之后,table1中的total字段的值就会被改成2和4。 其实就是update可以和inner join联合使用,这样就可以使用另一个表的数据更新到当前的表。

    4.7K10

    第 47 期:EXPLAIN TYPE 列的 JOIN 常见场景详解(上)

    SQL 2: select * from t1 join t2 using(f0,f1) SQL 2 是两表做内联,并且联接的键为两表的主键,这样的 SQL 语句(仅从 SQL 语句角度,不掺杂业务逻辑...那对 SQL 2 做些调整,变为 SQL 3:JOIN 条件变为字段 r1,并且同时给两表字段 r1 加索引。...SQL 3: select * from t1 a join t2 b using(r1) 查询计划分析 还是省去表 t1,只看表 t2 的执行计划。...SQL 6: select r1 from t1 limit 10 SQL 6 扫描的列只有 r1,而非全部字段,此刻走索引 idx_r1 即可,不需要回表。...对于这类的优化,可以加一个排序子句,把现有索引的预排序特性利用上,变为 SQL 7: SQL 7: select r1 from t1 order by r1 limit 10 此时再查看查询计划:很显然

    7300
    领券