mysql - 无法转换变量 MYSQL

标签 mysql casting

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

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

SET @Y=CAST(b'1000001 AS UNSIGNED);

(这完美地工作给我值(value) 65)

SELECT @X;
(THIS GIVES ME THE VALUE OF X AS b'1000001')

 SET @Y=CAST(@X AS UNSIGNED);
 (THIS DOESNOT WORK!!)
 (GIVES ME VALUE AS 0 FOR Y)

任何人都可以向我解释为什么变量不能在 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 |
+----------------------------------+------------------------------+

您可以将数字 值转换为 UNSIGNED;转换字符串会给你零,除非有前导数字。

关于mysql - 无法转换变量 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28655161/

相关文章:

php - 如何查找当月的工作日和周末?

mysql - 使用 MYSQL_ASSOC 而不是 MYSQL_BOTH 获取 mysql 数组是否会影响性能

c++ - 实现 C++ 状态机。如何解决 Wpmf 转换警告?

PHP递归地将对象转换为数组

c++ - reinterpret_cast 更改指针值的任何真实示例?

php - 服务器更新后 MySQL insert null 不起作用

mysql - 将第一个表中的 3 列连接到第二个表中的一列

php - SQL SELECT 查询没有结果也没有错误

c# - 如何在 C# 中使用表示反射结果类型的变量进行转换 .Invoke()

c# - 将泛型委托(delegate)转换为具有接口(interface)的另一种类型