MySql использовать переменную в ГДЕ - PullRequest
0 голосов
/ 15 января 2020

Когда я пишу код:

SET @code = 'a123';
UPDATE my_table SET number = (number + 1) WHERE code = @code;

, он работает неправильно. Но если я напишу код:

UPDATE my_table SET number = (number + 1) WHERE code = 'a123';

, он будет работать правильно. Я хочу использовать переменную в "ГДЕ". как я могу использовать это?

1 Ответ

0 голосов
/ 19 января 2020

После нескольких тестов я пришел к выводу, что мне следует изменить код следующим образом:

SET @code = 'a123';
SET @mid = NULL;
SELECT @mid := id, @code := code FROM my_table WHERE code = @code;
UPDATE my_table SET number = (number + 1) WHERE id = @mid;

Я должен использовать «id» вместо «code» после «WHERE» в транзакции UPDATE

также я должен снова установить @code в транзакции SELECT (почему? Я не знаю!)

Этот код работает правильно, предыдущий код не работает правильно, и я не знаю причина!

...