2008-11-25 48 views
1

我主要使用MySQL GUI工具。這使我可以在表格中輕鬆查看結果以及快速編輯和書籤頻繁運行的查詢。這適合我的需求比命令行要好得多。在MySQL中執行交互式查詢(主要來自GUI)

我記得在多年前我曾經在Oracle數據庫上做過這件事時,我可以在查詢本身中放入變量,以便在運行查詢時提示變量。

例如

select email from users where login = [VAR] 

,並在運行系統提示您輸入VAR的查詢,您可以在john_smith14類型,並且執行查詢。這對於你經常運行的adhoc查詢非常有用。

是的我知道使用shell腳本和命令行,這可以更容易地完成,但除此之外的幾個原因,shell腳本不是一個很好的解決方案。

回答

0

我不確定是否有辦法讓GUI工具提示您輸入值,但是您當然可以在MySQL中使用變量。

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

這可能甚至更適合你,因爲你不必每次都輸入變量值..?

+0

IIRC,這是不是爲MySQL GUI工具一個很好的解決方案,因爲它復位每一筆交易和用戶變量都將丟失後的連接。 – 2008-11-25 12:43:06

+0

真的嗎?堅果。必須有辦法做到這一點,對吧? – nickf 2008-11-25 12:44:34

+0

好沒關係我只是嘗試它,它工作正常。我必須從舊版本的MySQL查詢瀏覽器來記住行爲。 – 2008-11-25 12:47:02

1

好的,不同的解決方案,因爲它看起來比爾是正確的(閱讀我的其他答案的意見)。

在右下角的參數標籤中,您可以右鍵單擊「Local Params」文件夾並添加一個新參數。給它一個名字,例如:「myTest」。最初它被賦予一個NULL值。雙擊NULL並輸入一個新值。

現在您可以在您的查詢是這樣的:

SELECT email FROM users WHERE login = :myTest;

爲了使會話之間的這種堅持(開閉查詢瀏覽器),只是讓一個全球性的參數,而不是局部的參數。即使您重新啓動MySQL服務器,這也可以工作。

0

在這種情況下使用準備好的語句可能對您有用。

 
PREPARE query1 FROM select email from users where login = ? 

然後用你的變量執行:

 
SET @a = 'john'; 
EXECUTE query1 USING @a; 

本聲明將你的整個會話期間存在,並且跌落時斷開連接。

這可能看似不起眼的開銷,但一遍又一遍使用相同的查詢時,略有不同的值是非常有用的。

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