我不确定为什么会发生这种情况,而且我一直试图弄清楚这一点。
我有以下代码
SELECT (MAX(replace(replace(replace(`sku`,'PA1-',''),'TES-',''),'BOX-',''))+1) AS maxValue FROM `product` WHERE `sku` LIKE '%PA1-TES-BOX%'
这工作了一段时间后没有任何改变代码明智,我只能假设服务器更改导致此返回以下错误:
#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在
'maxValue FROM ``product`` WHERE ``sku`` LIKE '%PA1-TES-BOX%'
附近使用正确的语法
基本上,这个SQL用于查找此SKU代码的前3个部分并返回结尾+ 1,因此002将返回003以确保唯一的sku代码。
也许替换功能已经改变,我不完全确定。
有没有人有任何想法为什么突然之间会抛出错误?
答案 0 :(得分:0)
我没有看到明显的语法错误。但假设数字是sku中最后一个带连字符的项目,代码可以更容易地写成:
select (substring_index(sku, '-', -1) + 1) as maxvalue
. . .
语法错误的一种可能性是as
周围出现了一个不可打印的字符。