1

我主要使用 MySQL GUI 工具。这使我可以轻松地查看表格中的结果,以及快速编辑和收藏经常运行的查询。这比命令行更适合我的需求。

我记得几年前我曾经在 Oracle DB 上执行此操作时,我可以将变量放入查询本身,以便在运行查询时提示我输入变量。

例如

select email from users where login = [VAR]

当您运行查询时,系统会提示您输入 VAR,您可以输入john_smith14并执行查询。这对于您经常运行的即席查询非常有用。

是的,我知道使用 shell 脚本和命令行可以更轻松地完成此操作,但除此之外还有几个原因,shell 脚本对我来说不是一个好的解决方案。

4

3 回答 3

1

好的,一个不同的解决方案,因为看起来比尔是对的(阅读我的其他答案的评论)。

在右下角的 Params 选项卡中,您可以右键单击“Local Params”文件夹并添加一个新参数。给它一个名字,例如:“myTest”。最初,它被赋予 NULL 值。双击 NULL 并输入一个新值。

现在您可以像这样在查询中访问它:

SELECT email FROM users WHERE login = :myTest;

要使其在会话之间持续存在(打开和关闭查询浏览器),只需将其设为全局参数而不是本地参数。即使您重新启动 MySQL 服务器,这也有效。

于 2008-11-25T12:47:09.317 回答
0

在这种情况下,使用准备好的语句可能对您有用。

PREPARE query1 FROM 从登录 = 的用户中选择电子邮件?

然后用你的变量执行它:

SET @a = '约翰';
使用@a 执行查询1;

此语句将在您的整个会话期间存在,并在您断开连接时删除。

这可能看起来像很多开销,但在一遍又一遍地使用相同的查询时很有用,但值略有不同。

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

于 2008-11-25T13:48:00.083 回答
0

我不确定是否有办法让 GUI 工具提示您输入值,但您当然可以在 MySQL 中使用变量。

SET @myVar='john_smith14';
SELECT email FROM users WHERE login = @myVar;

这可能更适合您,因为您不必每次都输入变量值..?

于 2008-11-25T12:40:59.487 回答