mysql - 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”中使用变量。我该如何使用它?
解决方案
经过几次测试,我得出结论,我应该像这样更改代码:
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(为什么?我不知道!)
这段代码可以正常工作,而之前的代码不能正常工作,我也不知道是什么原因!
推荐阅读
- arrays - 仅在满足条件时运行 puppet 类
- javascript - 试图在 localstorage 中获取对象的索引,以便我可以使用 javascript 或 jquery 从 localStorage 存储中删除/删除该对象
- app-store-connect - App Store Connect API 请求销售报告
- mysql - Amazon Lightsail vs Amazon RDS
- javascript - 使隐藏元素显示自身,然后使用过渡移动
- r - R中的dplyr过滤器和for循环
- python - How to make the GUI using Tkinter of the format specified below?
- php - Removing duplicates from merged array
- django - pass the foreign key of a model in the url
- docker - Docker EE UCP - How to resolve x509 error when deploying stack?