mysql - 在变量中分配查询字符串
问题描述
在 mySQL 存储过程中,如何将查询字符串分配给变量,以便我可以重用它?在我的示例中,我将SELECT id FROM audit
多次使用。
CREATE PROCEDURE my_proc()
BEGIN
UPDATE person SET status='Active' WHERE id = (SELECT id FROM audit);
SELECT COUNT(*) FROM (SELECT id FROM audit);
//Multile scenarios the `SELECT id FROM audit` will be used.
END
就像是:
CREATE PROCEDURE my_proc()
BEGIN
myVariable = SELECT id FROM audit;
UPDATE person SET status='Active' WHERE id = (myVariable;
SELECT COUNT(*) FROM (myVariable);
//Multile scenarios the `SELECT id FROM audit` will be used.
END
解决方案
这是你想要的?抱歉,我不确定您需要什么。
SELECT @myCount:= count(id) FROM audit;
select @myCount;
根据您的回复,您是否需要一个临时表来存储审核中的 id 并在查询中重新使用这些 id?
create temporary table tbl_tmp_audit;
select id from audit;
我假设您需要这个,这样您就不会在每次后续查询时都加入整个审计列。
--first query
UPDATE person AS p
INNER JOIN tbl_tmp_audit t ON p.id = t.id
SET status = 'Active';
--second query
SELECT COUNT(*) FROM tbl_tmp_audit;
Drop temporary table tbl_temp_bookings;
推荐阅读
- c# - C# Web API 控制请求到具有 FIFO 的端点
- python - 是否有一种更 Pythonic 的方法可以将两个列表中元素的最大数量合并为一个
- java - 每个月生成随机日期
- javascript - 获取具有多个约束的两个对象数组的差异
- nestjs - 如何为 Nest.js 中的特定模块提供 Guard?
- javascript - 让 Web 查看器显示本地主机 (http://127.0.0.1:8000/)
- python - 使用返回 HTTP 400 的 Firestore REST API 创建新集合和文档
- stata - 用文件名中的本地和全局变量保存 dta 文件
- javascript - 填写字段时错误消息不会消失
- java - Java - Mac 应用程序需要安装 JDK 才能运行