2016-12-23 42 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左右。