MySql 在 WHERE 中使用变量

标签 mysql variables mysql-variables

当我编写代码时:

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

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

关于MySql 在 WHERE 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59747935/

相关文章:

mysql - 一个麻烦的 MySQL Join 操作

MySQL用户变量不增加

oracle - 使用触发器中的立即执行引用新变量

python - 使用 'simpledialog' 时声明的变量未初始化

php - 将变量传递到 mysql 的位置

mysql - 两个并排表和连接表有什么区别?

mysql - 如何优化 ORDER 条件以防止文件排序?

具有 LAST_INSERT_ID() 的 MySQL 函数给出意外结果

java - java中一个变量是否可以有多个潜在值

mysql - 获取每组分组结果的前n条记录