我正在尝试从表中保存带有count函数结果的用户变量。
执行此查询:
SELECT @var:=count(distinct(column1)) FROM table_name;
返回:
@var:=count(distinct(column1))
41243
然后执行:
SELECT @var;
返回:
@var
Blob
当我预期41243时。
当我为用户变量赋值时,它按预期工作。
我做错了什么?
感谢。
编辑: 我将$ var更正为@var。
我从mySQL Workbench发出查询以进行测试。我最终会从PHP中使用它。
另一个相关问题:我是否可以将SELECT结果分配给用户变量而不将结果(在我的示例中:41243)发送回客户端(因为如果我从PHP使用它,它将减慢查询速度)。
答案 0 :(得分:0)
您只需转换blob类型返回值:
SELECT @var:=count(distinct(column1)) FROM table1;
SELECT convert(@var,unsigned);
因为结果是blob(二进制字符串),你只需要将它转换为整数(在这种情况下是unsigned int,但是如果你使用'signed',那么你将得到有符号整数。
希望这有帮助。