如何将SQL查询格式化为更易于阅读的格式?

时间:2010-09-17 20:37:01

标签: php sql mysql

我正在寻找一个可以接受SQL字符串的程序,(我的环境是MySQL,但我可以查看其他RDBMS的类似工具)解析它并以更易读的格式再次呈现它。我见过一些在线的,但我希望有一个我可以集成到一些内部日志工具中。

例如,服用:

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,但我不介意花时间移植代码。

3 个答案:

答案 0 :(得分:2)

你可以看看phpmyadmin,看看他们是如何格式化SQL的。它们总是打印出每个执行的查询。

在libraries / common.inc.php中有一个名为PMA_formatSql的函数,这可能是一个很好的起点。

编辑:它不一定会将SQL显示为HTML格式的字符串。根据配置(实现为全局:-(),它会将SQL输出为文本。

答案 1 :(得分:1)

Google有一个javascript代码美化器,它有一个SQL插件:

http://code.google.com/p/google-code-prettify/

答案 2 :(得分:0)

我一直在使用SQLYog作为查询工具,它内置了一个“漂亮的”,可以与我尝试的大多数查询一起使用。但是,它不是免费的。

如果要在日志记录中使用它,您可以查找并在特定关键字(如FROM,WHERE,AND)之前插入换行符。