【问题标题】:MySql use variable in WHEREMySql 在 WHERE 中使用变量
【发布时间】:2020-05-02 00:21:16
【问题描述】:

当我写代码时:

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

它不能正常工作。 但是如果我写代码:

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

它工作正常。 我想在“WHERE”中使用变量。 我该如何使用它?

【问题讨论】:

  • @Marwen Jaffel 我检查了它,但不再工作了
  • 您的 SET 和 UPDATE 查询是否在同一个事务中?如果它不尝试将它们包装到 START TRANSACTION 中;放 ...;更新 ...;提交;
  • “它不起作用”是什么意思?抛出错误?不更新记录?

标签: mysql variables mysql-variables


【解决方案1】:

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

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

这段代码运行正常,之前的代码运行不正常也不知道是什么原因!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2022-11-18
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    相关资源
    最近更新 更多