3

我正在尝试使用表中的计数函数结果保存用户变量。

执行此查询:

SELECT @var:=count(distinct(column1)) FROM table_name;

回报:

@var:=count(distinct(column1))
41243

然后执行:

SELECT @var;

回报:

@var
Blob

当我期望 41243 时。

当我为用户变量赋值时,它按预期工作。

我究竟做错了什么?

谢谢。


编辑:我将 $var 更正为 @var。

我正在从 mySQL Workbench 发出查询以进行测试。我最终会从 PHP 中使用它。

另一个相关问题:我可以在不将结果(在我的示例中:41243)发送回客户端的情况下将 SELECT 结果分配给用户变量(因为如果我从 PHP 中使用它会减慢查询速度)。

4

1 回答 1

1

您只需转换 blob 类型的返回值:

SELECT @var:=count(distinct(column1)) FROM table1;
SELECT convert(@var,unsigned);

因为结果是 blob(二进制字符串),您只需将其转换为整数(在本例中为 unsigned int,但如果您使用 'signed',那么您将获得有符号整数。

希望这可以帮助。

于 2013-07-01T13:34:20.360 回答