无法强制转换变量MYSQL

无法强制转换变量MYSQL,mysql,casting,Mysql,Casting,我使用CAST()函数来强制转换会话期间已设置的变量。下面的代码对此进行了解释 SET @X="'b'1000001''" SET @Y=CAST(b'1000001 AS UNSIGNED); (这非常有效,给了我65的值) 有人能解释一下为什么变量不能在cast()函数中转换变量@X。如果我想在mysql中强制转换变量,有什么解决方法吗 mysql> SELECT CAST("'b'1000001''" AS UNSIGNED), CAST(b'1000001' AS UNSIGN

我使用CAST()函数来强制转换会话期间已设置的变量。下面的代码对此进行了解释

SET @X="'b'1000001''"

SET @Y=CAST(b'1000001 AS UNSIGNED);
(这非常有效,给了我65的值)

有人能解释一下为什么变量不能在cast()函数中转换变量@X。如果我想在mysql中强制转换变量,有什么解决方法吗

mysql> SELECT CAST("'b'1000001''" AS UNSIGNED), CAST(b'1000001' AS UNSIGNED);
+----------------------------------+------------------------------+
| CAST("'b'1000001''" AS UNSIGNED) | CAST(b'1000001' AS UNSIGNED) |
+----------------------------------+------------------------------+
|                                0 |                           65 |
+----------------------------------+------------------------------+

您可以将数值强制转换为无符号;除非有前导数字,否则强制转换字符串将为零。

这不起作用!!-->您收到的错误消息是什么?我编辑了问题,请重新检查并感谢您的建议我不清楚您从什么开始。您提到了
SET@X=“'b'1000001”“”
,但我怀疑这并不是您真正的出发点。我只是有一个变量。我需要在cast中使用它。我可以这样做吗?变量是如何构造的?为什么它不是用
65
100001
构建的?它不是关于使用65,但是如果我有一个大的二进制数,以后我需要它来转换它怎么办?去掉多余的引号,试着从那里开始。
mysql> SELECT CAST("'b'1000001''" AS UNSIGNED), CAST(b'1000001' AS UNSIGNED);
+----------------------------------+------------------------------+
| CAST("'b'1000001''" AS UNSIGNED) | CAST(b'1000001' AS UNSIGNED) |
+----------------------------------+------------------------------+
|                                0 |                           65 |
+----------------------------------+------------------------------+