mysql sql语句优先级_sql语句中mysql会话变量值的优先级

在SQL语句中使用时,会话变量的标准行为是什么.

情况1:

在以下示例中,会话变量的行为与预期一致.

mysql> set @m1=0, @m2=0, @m3=0;

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> select

-> @m1 := 55 m1, @m2 := 42 m2, @m3 := 66 m3,

-> @m1, @m2, @m3,

-> @b1 := greatest( @m1, @m2, @m3 ) b1,

-> @b2 := ( ( @total := @m1 + @m2 + @m3 )

-> - ( @b1 + least( @m1, @m2, @m3 ) )) b2,

-> @total total;

+----+----+----+------+------+------+------+------+-------+

| m1 | m2 | m3 | @m1 | @m2 | @m3 | b1 | b2 | total |

+----+----+----+------+------+------+------+------+-------+

| 55 | 42 | 66 | 55 | 42 | 66 | 66 | 55 | 163 |

+----+----+----+------+------+------+------+------+-------+

1 row in set (0.00 sec)

mysql>

mysql> set @m1=0, @m2=0, @m3=0;

Query OK, 0 rows affected (0.00 sec)

mysql> select

-> @m1 := m1+3, @m2 := m2+3, @m3 := m3+3,

-> @m1, @m2, @m3,

-> @b1 := greatest( @m1, @m2, @m3 ) b1,

-> @b2 := ( ( @total := @m1 + @m2 + @m3 )

-> - ( @b1 + least( @m1, @m2, @m3 ) )) b2,

-> @total total

-> from

-> ( select 55 m1, 42 m2, 66 m3 union all select 48, 63, 92 ) marks_list

-> ;

+-------------+-------------+-------------+------+------+------+------+------+-------+

| @m1 := m1+3 | @m2 := m2+3 | @m3 := m3+3 | @m1 | @m2 | @m3 | b1 | b2 | total |

+-------------+-------------+-------------+------+------+------+------+------+-------+

| 58 | 45 | 69 | 58 | 45 | 69 | 69 | 58 | 172 |

| 51 | 66 | 95 | 51 | 66 | 95 | 95 | 66 | 212 |

+-------------+-------------+-------------+------+------+------+------+------+-------+

2 rows in set (0.00 sec)

上面的示例没有使用任何聚合函数.

案例2:

当使用count,sum,group by等聚合函数执行类似的语句时,结果模式完全不同.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值