我有一列类型为 的数据VARCHAR
,我想要CONVERT
或CAST
整数(我的最终目标是让我的所有数据点都是整数)。但是,我尝试的所有查询都返回0
.
我的数据如下所示:
1
2
3
4
5
如果我运行以下任一查询:
SELECT CONVERT(data, BINARY) FROM table
SELECT CONVERT(data, CHAR) FROM table
我的结果是:
1
2
3
4
5
那里没有惊喜。但是,如果我运行以下任一查询:
SELECT CONVERT(data, UNSIGNED) FROM table
SELECT CONVERT(data, SIGNED) FROM table
我的结果是:
0
0
0
0
0
我已经在 SO 和 Google 上搜索了这个问题的答案,但没有运气,所以我想我会在这里尝试专业人士。
编辑/更新
我对评论中的建议进行了一些额外的查询,结果如下:
data LENGTH(data) LENGTH(TRIM(data)) ASCII(data)
1 3 3 0
2 3 3 0
3 3 3 0
4 3 3 0
5 3 3 0
看来我的数据本身有问题。对于遇到这篇文章的任何人:我此时的解决方案是TRIM
从数据点中提取多余的数据,然后CONVERT
再到UNSIGNED
. 感谢所有的帮助!
进一步编辑/更新
经过一番研究,结果发现NULL
我的数据中有隐藏的字节。这个问题的答案有帮助:如何在 MySQL 中使用 SELECT 删除填充的 NULL 字节