MySQL Cast操作会抛出一般错误

时间:2013-10-28 13:09:39

标签: mysql casting

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

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

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

1 个答案:

答案 0 :(得分:2)

你需要这样做:

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

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