为什么我的MySQL变量显示为空?

  • 本文关键字:显示 变量 MySQL mysql
  • 更新时间 :
  • 英文 :


我想了解MySQL的功能。首先,我想设置一个变量,然后显示它。我在笔记本电脑的phpMyAdmin中做这个。我使用php 7.4。我不知道这是不是许可的问题。我有超级权限。

我读到的所有信息都说:

SET @myvar1 = 100;
SELECT @myvar1;

当然,我看到1列@myvar1的值为100

现在如果我输入:

SELECT @myvar1;

我只看到1列@myvar1的值null.

这样的变量是1-off的东西,在我读过一次之后就消失了吗??

MySQL文档显示了用户变量(X是十六进制,我想):

SET @v1 = X'41';
SET @v2 = X'41'+0;
SET @v3 = CAST(X'41' AS UNSIGNED);
SELECT @v1, @v2, @v3;

果然,我看到@var2和@var3为65,但@var1显示为[BLOB - 1b]

如果我重复SELECT查询,所有3显示为null

. 我认为用户变量应该持续整个用户会话。这有错吗?如果我先运行SET查询,然后运行SELECT查询,它们都显示为空

就像@Zaffy说的,phpmyadmin在你背后搞乱MySql连接。对于创建表之类的事情,它是一个可以接受的工具。

这是一个可怕的学习如何使用SQL的工具。为了有效地使用SQL,我们需要理解连接作用域中存在的东西。@variables是连接作用域。临时表、插入id值和其他东西也是如此。Phpmyadmin打开了许多新的连接来做你告诉它的事情,所以你必须学会使用的连接范围的东西不能正常工作。看看Windows上的mysql命令行工具或HeidiSQL。还有很多其他的SQL客户端程序。