Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中执行交互式查询(主要来自GUI)_Mysql_Variables_Prompt_Interactive - Fatal编程技术网

在MySQL中执行交互式查询(主要来自GUI)

在MySQL中执行交互式查询(主要来自GUI),mysql,variables,prompt,interactive,Mysql,Variables,Prompt,Interactive,我主要使用MySQL GUI工具。这使我可以轻松地在表中查看结果,并可以快速编辑和为频繁运行的查询添加书签。这比命令行更适合我的需要 我记得几年前,当我在OracleDBS上这样做时,我可以将变量放入查询本身,因此当运行查询时,我会得到提示输入变量 e、 g 当您运行查询时,系统会提示您输入VAR,您可以输入john_smith14,然后执行查询。这对于经常运行的临时查询非常有用 是的,我知道使用shell脚本和命令行可以更容易地完成这项工作,但除此之外,shell脚本对我来说不是一个好的解决方

我主要使用MySQL GUI工具。这使我可以轻松地在表中查看结果,并可以快速编辑和为频繁运行的查询添加书签。这比命令行更适合我的需要

我记得几年前,当我在OracleDBS上这样做时,我可以将变量放入查询本身,因此当运行查询时,我会得到提示输入变量

e、 g

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


是的,我知道使用shell脚本和命令行可以更容易地完成这项工作,但除此之外,shell脚本对我来说不是一个好的解决方案。

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

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

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

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

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

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

好的,另一种解决方案,因为Bill似乎是对的(请阅读我另一个答案上的注释)

在右下角的“参数”选项卡中,可以右键单击“本地参数”文件夹并添加新参数。给它起个名字,例如:“myTest”。最初,它的值为NULL。双击NULL并键入新值

现在,您可以在查询中访问它,如下所示:

从登录名为:myTest的用户处选择电子邮件


要在会话之间保持此状态(打开和关闭查询浏览器),只需将其设置为全局参数而不是本地参数。即使您重新启动MySQL服务器,这也能起作用。

好的,另一种解决方案,因为比尔似乎是对的(请阅读我另一个答案上的评论)

在右下角的“参数”选项卡中,可以右键单击“本地参数”文件夹并添加新参数。给它起个名字,例如:“myTest”。最初,它的值为NULL。双击NULL并键入新值

现在,您可以在查询中访问它,如下所示:

从登录名为:myTest的用户处选择电子邮件


要在会话之间保持此状态(打开和关闭查询浏览器),只需将其设置为全局参数而不是本地参数。即使您重新启动MySQL服务器,这也能正常工作。

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

PREPARE query1 FROM select email from users where login = ? 从登录名为“”的用户处选择电子邮件,准备查询1? 然后使用变量执行它:

SET @a = 'john'; EXECUTE query1 USING @a; SET@a='john'; 使用@a执行query1; 此语句将在整个会话期间出现,并在断开连接时删除

这可能看起来开销很大,但在反复使用相同的查询时非常有用,但值略有不同


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

PREPARE query1 FROM select email from users where login = ? 从登录名为“”的用户处选择电子邮件,准备查询1? 然后使用变量执行它:

SET @a = 'john'; EXECUTE query1 USING @a; SET@a='john'; 使用@a执行query1; 此语句将在整个会话期间出现,并在断开连接时删除

这可能看起来开销很大,但在反复使用相同的查询时非常有用,但值略有不同


IIRC,对于MySQL GUI工具来说,这不是一个好的解决方案,因为它会在每个事务和用户变量丢失后重置连接。好吧,别介意,我只是尝试了一下,效果很好。我一定记得MySQL查询浏览器的旧版本的行为。嗨,谢谢。我在一些查询中使用了它,其中有一些不同的变量。但是查询的特殊性质是它们是非常临时的,所以myVar会随时变化,这就是为什么用户提示才是我真正需要的。通过这种方式,我也可以将查询交给非技术人员。嗯,刚刚尝试了一下,得到了这个错误,您的SQL语法中有一个错误;检查与您的MySQL服务器版本相对应的手册,以了解使用near'的正确语法;选择第1IRC行id=@myVar'的用户的电子邮件,这对于MySQL GUI工具不是一个好的解决方案,因为它会在每个事务和用户变量丢失后重置连接。好的,没关系,我只是尝试了一下,效果很好。我一定记得MySQL查询浏览器的旧版本的行为。嗨,谢谢。我在一些查询中使用了它,其中有一些不同的变量。但是查询的特殊性质是它们是非常临时的,所以myVar会随时变化,这就是为什么用户提示才是我真正需要的。通过这种方式,我也可以将查询交给非技术人员。嗯,刚刚尝试了一下,得到了这个错误,您的SQL语法中有一个错误;检查与您的MySQL服务器版本相对应的手册,以了解使用near'的正确语法;从第1行id=@myVar'的用户处选择电子邮件这真的很好,而且是朝着正确的方向迈出的一步,但是我是否可以让它存储本地参数,这样我就不会在每次关闭和打开MySQL gui工具时都创建它们?是的-将其作为全局参数而不是本地参数。编辑answerCool,但我注意到您甚至可以将参数放入字符串文本中:例如,SELECT:id':id';这意味着它们不是真正的SQL查询参数,只是QB在执行查询之前进行字符串替换。这很有意义,因为MySQL不支持命名查询参数。这确实很好,而且是朝着正确的方向迈出的一步,但我是否可以让它存储本地参数,这样我就不会在每次关闭和打开MySQL gui工具时都创建它们了?是的,将其作为全局参数而不是本地参数。编辑answerCool,但我注意到您甚至可以将参数放入字符串文本中:例如,SELECT:id':id';W