当前位置: 首页 > 知识库问答 >
问题:

从VARCHAR转换为int-mysql

夹谷衡
2023-03-14

我得当前数据

SELECT PROD_CODE FROM `PRODUCT`

PROD_CODE
2
5
7
8
22
10
9
11

我试过了所有的四个查询,没有一个奏效。(参考)

SELECT CAST(PROD_CODE) AS INT FROM PRODUCT;

SELECT CAST(PROD_CODE AS INT) FROM PRODUCT;

SELECT CAST(PROD_CODE) AS INTEGER FROM PRODUCT;

SELECT CAST(PROD_CODE AS INTEGER) FROM PRODUCT;

所有抛出的语法错误如下所示:

您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行使用“PRODUCT LIMIT 0,30”中的near')AS INT的正确语法

您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行“Integer)FROM PRODUCT LIMIT 0,30”附近使用的正确语法

在MySQL中将varchar转换为integer的正确语法是什么?

MySQL版本:5.5.16

共有2个答案

严烨
2023-03-14

对于将varchar字段/值转换为数字格式,可以使用很少的hack:

SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`
马业
2023-03-14

如Cast函数和运算符中所述:

结果的类型可以是以下值之一:

  • 二进制[(N)]
  • 字符[(N)]
  • 日期
  • 日期时间
  • 十进制[(M[,D])]
  • 带符号的[INTEGER]
  • 时间
  • 无符号[INTEGER]

因此,您应该使用:

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
 类似资料:
  • 问题内容: 我当前的数据 是 我已经尝试了所有四个查询,但都没有工作。(参考) 全部抛出语法错误,如下所示: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’)AS INT FROM PRODUCT LIMIT 0,30’附近使用正确的语法 您的SQL语法有误;在第1行的“ INTEGER)FROM PRODUCT LIMIT 0,30”附近检查与您的MySQL服务器

  • 问题内容: 我在下面的查询中,需要转换为 架构图 我尝试了什么 但它们不起作用。请提出建议。 问题答案: 您将需要或作为数据类型,没有可以将数据强制转换/转换为以下数据的数据类型: 请参阅下面的SQL(实际上)在SQL Fiddle中 : 除了您试图转换为不正确的数据类型外,您所使用的语法也不正确。该函数使用以下列或值: 要么 您的原始查询的语法向后。

  • 问题内容: 我尝试搜索与此相关的以前的文章,但是找不到适合我情况的文章。而且由于我是StackOverflow的新手,所以我无法发布图片,所以我将尝试对其进行描述。 我有两个数据集。一个是34行,占所有s的1列。其他13行,其中1列为s。 当我同时尝试这两个时,出现以下错误: 将varchar值转换为int数据类型时,转换失败。 我不明白为什么会收到此错误。我之前编辑过许多列和许多其他类型的列,但

  • 问题内容: 我创建了一个过程并收到了此消息 将varchar值’%’转换为数据类型int时,转换失败。 我不知道这可能是什么,但是当我将过程更改为这样时: 似乎工作正常。我是SQL的新手,所以可以得到任何帮助,也许有更好的方法来做我想做的事情? 问题答案: 这是在子句中: 是一个整数。因此,您需要将其转换为字符串: 为什么要使用称为的列是可疑的。也许您只想要:

  • 问题内容: 如何在MySQL中将varchar转换为双精度值 看,我在varchar中有表列,但它只有数字。在那我想选择最小值的最大值。 请检查以下查询,其中出现语法错误。 请参考下面的sqlfiddle 问题答案: 我认为这是您要寻找的: 在这里使用SQLFiddle 。 您必须将值CAST转换为,这与MySQL中的相对应。有关更多信息,请点击此处。