MySQL查询浏览器 - 使用变量

时间:2009-10-19 02:25:01

标签: sql mysql variables

我已经习惯了MSSQL的查询分析器。需要将一些SP转换为业余爱好项目,我无法转换到mysql查询浏览器,特别是在使用变量时。我本质上是试图在程序之前模拟一个程序。

所以在查询分析器中我会写这样的东西......

delcare @var1 int
declare @var2 varchar(30)

set @var1 = 17 --some thing i'd normally pass to the SP
set @var2 = 'something else id pass to the SP'

SELECT * 
FROM table 
WHERE id = @var1 
OR textcolumn = @var2

然后我会使用查询(导致它比示例更复杂)直到我做对了,或者我将替换变量的值因为它们在体内被使用了100次查询,这是很多重新输入。

所以我的问题是如何在MySQL的查询浏览器中使用它。

据我所知,它只执行突出显示的任何语句(光标位于该行或文本块上)。而且我想我明白应该以某种方式使用“开始交易”按钮,但我不能让它去。这是我到目前为止所拥有的

DELIMITER $$

begin
declare var1 varchar(1) default 'W';
  select count(*) from gamestatspitchers where wls = var1;
end$$

delimiter ;

感谢您的帮助。我似乎无法解决这个问题。

4 个答案:

答案 0 :(得分:2)

用分号分隔查询:

SELECT  @var1 := 17, @var2 := 'somethingelse';
SELECT  @var1, @var2;

将光标放在上面时,查询将突出显示。

然后只需按Ctrl-Enter即可执行您要执行的查询。

每个选项卡都保留自己的会话,因此在执行第一个查询后,@var的值将保持定义。您可以根据需要多次重新运行第二个查询。

答案 1 :(得分:1)

通常,MySQL Query Browser将为您从查询选项卡执行的每个语句使用单独的连接。这包括自动提交语义。这意味着,如果您将INSERT记录到表中,则在语句结束后,连接到同一服务器的所有其他客户端都可以立即看到新记录。

如果点击“开始交易”按钮,则会有所不同。只要您没有点击“回滚”或“提交”按钮,您在该查询选项卡中执行的所有操作都将在一个事务中。

要尝试此操作,请同时连接两个客户端,其中至少一个是查询浏览器。在另一个客户端中执行SELECT COUNT(*) FROM testtable,假设存在这样的表。

现在,在查询浏览器中点击“开始事务”按钮。将新记录插入测试表。 但是点击了提交按钮,而是在同一个查询浏览器中执行相同的SELECT COUNT(*) FROM testtable。您将看到一个高于其他客户端的值,因为此SELECT与您刚刚执行的INSERT处于同一事务中。 重新执行其他客户端中的SELECT并看到您仍然获得相同的值,因为您还看不到未提交的INSERT

在查询浏览器中,现在点击“提交”按钮,第三次在另一个客户端重新运行SELECT。现在你也会看到增加的行数。

我没有尝试使用变量,但我认为这也应该可以正常工作。

希望有所帮助!

答案 2 :(得分:0)

如何使用脚本选项卡而不是结果集选项卡?这样你就可以执行多个语句。

答案 3 :(得分:0)

看起来不像我想要的确实是可能的。我只是使用两个选项卡 - 一个用于编辑查询的脚本选项卡,以及一个用于调用它的结果选项卡。它可以工作,但它并不像MSSQL查询分析器那么容易。