MySQL + Dapper QueryMultiple:如何一次执行多个SELECT查询?

时间:2019-03-21 13:24:07

标签: mysql mysql-workbench dapper

我很难在互联网上找到这个……

我需要在 Dapper + MySQL 中运行attnum命令,并在SQL Server中执行如下查询:

QueryMultiple

当然,DECLARE @clientDomain VARCHAR(64) SET @clientDomain = 'some-domain'; DECLARE @sessionId VARCHAR(64) SET @sessionId = 'd09a8sd09a7g8gh'; SELECT * FROM sessions.Sessions Sessions WHERE Sessions.ClientDomain = @clientDomain AND Sessions.SessionId = @sessionId; SELECT * FROM sessions.PageVisits PageVisits WHERE PageVisits.SessionClientDomain = @clientDomain AND PageVisits.SessionId = @sessionId @clientDomain将作为@sessionId方法中的查询参数正确传递,但是我正在 MySQL Workbench < / strong>,所以我已经在那里声明了要开发的变量。

我的问题是:

我无法使其在Workbench中运行,我想它也不能在Dapper中工作。

我尝试过的示例:

enter image description here

并使用QueryMultiple / BEGIN

enter image description here

我已经经历过:https://dev.mysql.com/doc/refman/5.6/en/sql-syntax-compound-statements.html,并尝试了带有标签,不带有标签等的变体。

  

注意:我不想编写存储过程。我想要的最终结果   是一个.sql文件,我将其作为嵌入资源包含在   项目,然后在运行时从代码中加载它。

     

我正在使用MySQL 5.6,Workbench Community 8.0.15。

我想念什么?


解决方案:

在Jane在下面发表评论后,我有两个工作版本:

END

还有一个带有START TRANSACTION; SET @clientDomain = 'some-domain'; SET @sessionId = 'd09a8sd09a7g8gh'; SELECT * FROM sessions.Sessions Sessions WHERE Sessions.ClientDomain = @clientDomain AND Sessions.SessionId = @sessionId; SELECT * FROM sessions.PageVisits PageVisits WHERE PageVisits.SessionClientDomain = @clientDomain AND PageVisits.SessionId = @sessionId; COMMIT; 但没有BEGIN;的文件(如果尝试,我会收到一条错误消息,告诉我要寻找有关如何正确编写END;语句的文档):

END

我将第一个(BEGIN; SET @clientDomain = 'some-domain'; SET @sessionId = 'd09a8sd09a7g8gh'; SELECT * FROM sessions.Sessions Sessions WHERE Sessions.ClientDomain = @clientDomain AND Sessions.SessionId = @sessionId; SELECT * FROM sessions.PageVisits PageVisits WHERE PageVisits.SessionClientDomain = @clientDomain AND PageVisits.SessionId = @sessionId; )设置为START TRANSACTION

1 个答案:

答案 0 :(得分:2)

我相信您正在寻找START TRANSACTION

START TRANSACTION;

DECLARE @clientDomain VARCHAR(64) SET @clientDomain = 'some-domain';
DECLARE @sessionId VARCHAR(64) SET @sessionId = 'd09a8sd09a7g8gh';

SELECT *
FROM sessions.Sessions Sessions
WHERE Sessions.ClientDomain = @clientDomain AND Sessions.SessionId = @sessionId;

SELECT *
FROM sessions.PageVisits PageVisits
WHERE PageVisits.SessionClientDomain = @clientDomain AND PageVisits.SessionId = @sessionId

COMMIT;