首页 > 解决方案 > MySql 在 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”中使用变量。我该如何使用它?

标签: mysqlvariablesmysql-variables

解决方案


经过几次测试,我得出结论,我应该像这样更改代码:

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(为什么?我不知道!)

这段代码可以正常工作,而之前的代码不能正常工作,我也不知道是什么原因!


推荐阅读