java吧 关注:1,283,263贴子:12,803,635
  • 9回复贴,共1

大哥们 关于sql的执行顺序

只看楼主收藏回复

我有一条sql语句如下
select @id,(select @id:=@id+1)
from classify as t1,(select @id := 1) init
where @id <= 10
想问一下,上面的语句是mysql中的查询语句,classify表有两千条数据,我想查询@id这个变量的值,并且加了where条件@id不能大于10,问题就在 这个where子句的条件是什么时候触发的 是不是select子句每次查询出一条数据就使用where子句判断一次该@id是否大于10吗?


IP属地:上海1楼2022-10-07 16:47回复
    看下执行计划


    IP属地:上海来自Android客户端4楼2022-10-07 19:07
    回复
      2025-10-17 10:04:52
      广告
      不感兴趣
      开通SVIP免广告
      1from 2where 3group 4聚合 5select 6order 7limit


      IP属地:广东来自Android客户端6楼2022-10-07 21:30
      收起回复
        是不是这条sql中由于select查询过程中改变了结变量的值导致结果集发生变化了然后有重新调用where进行判断了呢


        IP属地:上海7楼2022-10-07 22:20
        回复