2016-12-23 3 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コードを保証します。

replace関数が変更されている可能性がありますが、私は完全にはわかりません。

これは突然、上記のエラーを投げている理由は誰にもありますか?

答えて

0

明らかな構文エラーはありません。数を仮定すると、SKUの最後のハイフン付きのアイテムである、コードはより簡単のように書くことができしかし:

select (substring_index(sku, '-', -1) + 1) as maxvalue 
. . . 

構文エラーのための一つの可能​​性は、印刷できない文字がas周りでこっそりということです。

関連する問題