我已经习惯了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 ;
感谢您的帮助。我似乎无法解决这个问题。
答案 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查询分析器那么容易。