如何在MySQL中将类型转换为bigint?

Ano*_*nym 10 mysql sql

CAST() 似乎只适用于BINARY,CHAR,DATE; DATETIME,DECIMAL,TIME,SIGNED,UNSIGNED.

我需要将十六进制字符串转换为bigint,也就是说,我想要:

SELECT CAST(CONV("55244A5562C5566354',16,10) AS BIGINT)
Run Code Online (Sandbox Code Playgroud)

CONV()返回一个字符串,这就是我尝试转换它的原因.我有2个用途

  • 插入数据,例如, INSERT INTO a(foo) SELECT CONV(bar,16,10) FROM ...这里foo是一个bigint列,bar为varchar.也许我可以将select语句作为一个字符串,并让MySQL处理它(?)

  • 返回客户端将动态学习列的数据类型的数据SELECT CONV(bar,16,10)是不好的,因为客户端将其作为字符串处理.

Qua*_*noi 23

SELECT CAST(CONV('55244A5562C5566354',16,10) AS UNSIGNED INTEGER);
Run Code Online (Sandbox Code Playgroud)

  • 那么将它转换为bigint /什么?我不必担心溢出"正常"整数? (4认同)
  • @Anonym:在`5.1`中,`CAST ... AS UNSIGNED`总是会产生一个'BIGINT`. (4认同)
  • @Quassnoi ..但是该页面上没有有关“BIGINT”的信息。(我使用了字符串搜索)。我们有一个重要功能的示例,该功能并不总是有效(即我的“数据截断”问题),但没有记录并且可能不受支持(_?_)。这是一个黑客行为。 (2认同)