MySql 在 WHERE 中使用变量
MySql use variable in WHERE
当我写代码时:
SET @code = 'a123';
UPDATE my_table SET number = (number + 1) WHERE code = @code;
它不能正常工作。
但是如果我写代码:
UPDATE my_table SET number = (number + 1) WHERE code = 'a123';
它工作正常。
我想在 "WHERE" 中使用变量。
我该如何使用它?
经过几次测试,我得出的结论是我应该像这样更改代码:
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;
我应该在 UPDATE 事务 'WHERE' 之后使用 'id' 而不是 'code'
我还应该在 SELECT 事务中再次设置 @code(为什么?我不知道!)
这段代码可以正常运行,而前面的代码无法正常运行,我不知道原因!
当我写代码时:
SET @code = 'a123';
UPDATE my_table SET number = (number + 1) WHERE code = @code;
它不能正常工作。 但是如果我写代码:
UPDATE my_table SET number = (number + 1) WHERE code = 'a123';
它工作正常。 我想在 "WHERE" 中使用变量。 我该如何使用它?
经过几次测试,我得出的结论是我应该像这样更改代码:
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;
我应该在 UPDATE 事务 'WHERE' 之后使用 'id' 而不是 'code'
我还应该在 SELECT 事务中再次设置 @code(为什么?我不知道!)
这段代码可以正常运行,而前面的代码无法正常运行,我不知道原因!