Ключом являются операторы ": =". MySQL User Variable
Вы также можете присвоить значение пользовательской переменной в инструкциях, отличных от SET.В этом случае оператор присваивания должен быть: =, а не =, потому что последний рассматривается как оператор сравнения = в операторах не-SET:
1 Используйте один из столбца обновления
SET @tempVariable := 0;
UPDATE myTable
SET col1 = 5,
col2 = @tempVariable := 100,
col3 = @tempVariable := col2 + 1;
@ tempVariable всегда равен 100, а col3 будет всегда равным 101. Кажется, mySQL будет использовать новое присвоенное значение вместо исходного значения в таблице.Это отличается от MS SQL. Чтобы сделать его более понятным, попробуйте следующий пример, значение будет равно 1001 для col3 и @ tempVariable.
UPDATE myTable
SET col1 = 5,
col2 = @tempVariable := 100,
col2 = 1000
col3 = @tempVariable := col2 + 1;
2 Используйте другой столбец в таблице, кромеОбновление столбца.
UPDATE myTable
SET col1 = 5,
col2 = @tempVariable := 100,
col3 = @tempVariable := col4 + 1;
@ tempVariable и col3 будут иметь одинаковое значение.Они будут исходным значением col4 + 1.