2012-06-01 2 views
0

У меня есть следующая функция, используемая для увеличения групп значений:Использования переменных в MySql

SET @IncrementValue := 0; 
SET @VIN := 0; 

UPDATE tbInventoryMedia 
SET 
    @IncrementValue := IF(@VIN <> strVIN, @IncrementValue + 1, 1), 
    @VIN := strVIN, 
    tbInventoryMedia.intOrder = @IncrementValue; 

Это выглядит довольно прямо вперед запрос ... приращения, если последний Vin отличается и перезапускает нумерацию. Любые идеи, почему он показывает ошибку компиляции после SET?

Любая помощь очень ценится.

+0

Нет идеи, если не опубликовать сообщение об ошибке. – Quassnoi

+0

Общее сообщение об ошибке является общим: «Ошибка рядом с @incrementValue» ... Я дал вам все, что я знаю с грустью :( –

+0

какой инструмент вы используете для запуска запроса? – Quassnoi

ответ

0

Вы не можете обновлять переменные сеанса с помощью SET, который является частью UPDATE.

Попробуйте это:

SET @IncrementValue := 0; 
SET @VIN := 0; 

UPDATE tbInventoryMedia 
SET  tbInventoryMedia.intOrder = CASE @vin WHEN @vin := strVin THEN @IncrementValue := @IncrementValue + 1 ELSE @IncrementValue := 1 END 
ORDER BY 
     strVIN; 
+0

Большое спасибо! –

Смежные вопросы