【问题标题】:MySQL Cast operation throws generic errorMySQL Cast 操作抛出一般错误
【发布时间】:2013-10-28 13:09:38
【问题描述】:

这个陈述是一个更大的陈述的一部分,但这个过去是行不通的。它抛出通常的 1064 错误。目标是解析一个字符串以获取它中间的数字,然后将其转换为一个 int 以便可以将所述数字与其他 id 值进行比较。这是失败的查询

SELECT CAST(REPLACE(REPLACE('remove_this-151-remove_this_too', 'remove_this-', ''), '-remove_this_too', '') as INTEGER);

我不确定为什么不允许使用这种类型的语法。感谢任何可以提供帮助的人。

【问题讨论】:

    标签: mysql casting


    【解决方案1】:

    你需要这样做:

    SELECT CAST(REPLACE(REPLACE('remove_this-151-remove_this_too', 'remove_this-', ''), '-remove_this_too', '') as UNSIGNED)
    

    -因为MySQL中没有CAST()INTEGER修饰符,但是有SIGNEDUNSIGNED

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 2019-10-13
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多