MySQL子查询中的用户变量 [英] User variable in MySQL subquery

查看:666
本文介绍了MySQL子查询中的用户变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Query Output:
> 

SELECT
  @foo := 1,
  @foo,
  (SELECT @foo),
  (SELECT foo FROM (SELECT @foo AS foo) subselect)

+ -------------- + --------- + ------------------ + ----------------------------------------------------- +
| @foo := 1      | @foo      | (SELECT @foo)      | (SELECT foo FROM (SELECT @foo AS foo) subselect)      |
+ -------------- + --------- + ------------------ + ----------------------------------------------------- +
| 1              | 1         | 1                  | 0                                                     |
+ -------------- + --------- + ------------------ + ----------------------------------------------------- +
1 rows

嗯...我只想知道为什么第四列因为这个 FROM(SELECT @foo AS foo)

Well... I just want to know why fourth column value is 0 instead 1.

推荐答案

c $ c>在 @foo:= 1 之前计算。基本上,FROM中的任何内容都将在SELECT之前进行求值。

Because this FROM (SELECT @foo AS foo) is evaluated before this @foo := 1. Basically anything in FROM will be evaluated before your SELECT.

它实际上应该为null,但是猜测你已经为其他地方分配了一个值为零的会话变量。

It actually should be null but Im guessing you've assigned your session variable a value of zero somewhere else.

这篇关于MySQL子查询中的用户变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆