2016-12-23 48 views
0

我不确定为什么会发生这种情况,我一直试图弄清楚现在一段时间。获取替换函数的SQL错误

我已经得到了如下代码

SELECT (MAX(replace(replace(replace(`sku`,'PA1-',''),'TES-',''),'BOX-',''))+1) AS maxValue FROM `product` WHERE `sku` LIKE '%PA1-TES-BOX%' 

这是工作了一段时间回来,什么都没有变聪明的代码,我只能假设,服务器的变化已经引起了这个返回以下错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'maxValue FROM ``product`` WHERE ``sku`` LIKE '%PA1-TES-BOX%'

基本上,这个SQL是为了找到这个SKU代码的前3个部分而返回结尾+ 1,因此002会返回003来确保唯一的sku代码。

也许替换功能已经改变,我不完全确定。

有没有人有这为什么突然抛出上述错误任何想法?

回答

0

我没有看到明显的语法错误。不过,假设的数量是在SKU的最后一个复姓项目,代码可以更容易地被写为:

的语法错误
select (substring_index(sku, '-', -1) + 1) as maxvalue 
. . . 

一种可能性是无法打印的字符蹑手蹑脚的as左右。