2010-09-17 69 views
1

我正在尋找一個可以接受SQL字符串的程序(我的環境是MySQL,但是我可以查看其他RDBMS的類似工具)解析它並以更具人類可讀性的格式再次呈現它。我看過一些在線的,但我希望能夠將其集成到一些內部日誌記錄工具中。如何將SQL查詢格式化爲更易讀的格式?

例如,服用:

SELECT * FROM table JOIN other_table ON table.id = other_table.id WHERE column = 'value' AND column = 'value' 

並將其轉換成:

SELECT * 
FROM table 
    JOIN other_table 
     ON table.id = other_table.id 
WHERE column = 'value' 
    AND column = 'value' 

我的環境是專門PHP,但我不會介意花時間編寫代碼。

回答

2

你可以看看phpmyadmin,看看它們是如何格式化SQL的。他們總是漂亮地打印每個執行的查詢。

在libraries/common.inc.php中有一個名爲PMA_formatSql的函數,這可能是一個很好的起點。

編輯:它並不需要將SQL顯示爲HTML格式的字符串。根據不同的配置(實現爲全球:-()它輸出SQL文本

+0

我已經開始在那裏探索,它似乎是一個完整的解析器,然後它會生成HTML輸出,這對我在這裏做的事情有點矯枉過正。 – 2010-09-17 20:48:52

+2

'libraries/sqlparser.lib.php'並檢出函數'PMA_SQP_formatHtml' – webbiedave 2010-09-17 20:50:07

+0

@Dominic Barnes:如果它沒有全面解析它,還能如何正確格式化? – webbiedave 2010-09-17 20:50:45

0

我一直使用SQLYog作爲查詢工具,它內置了一個「漂亮」的內置程序,可以與我嘗試的大多數查詢結合使用,但它不是免費的,但它不是免費的。讓它在特定的關鍵字之前查找並插入換行符,例如FROM,WHERE,AND。