2

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

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

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

4

1 回答 1

2

你需要这样做:

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

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

于 2013-10-28T13:12:06.030 回答