在mysql中会话变量前面的字符是什么_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,@m3 ) b1,-> @b2 := ( ( @total := @m1 + @m2 + @m3 )

-> - ( @b1 + least( @m1,@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,0 rows affected (0.00 sec)

mysql> select

-> @m1 := m1+3,@m2 := m2+3,@m3 := m3+3,-> @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等聚合函数执行类似的语句时,结果模式完全不同.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值