将mysql行导出到不同的文件中

时间:2014-04-30 13:31:45

标签: mysql sql file export

我有一个mySQL表,其中包含html代码和其他一些信息。

这样的一个例子:

SELECT id, lang, html 
FROM mytable t
WHERE type = 10

给出结果:

id     lang     html
-------------------------------------------------------
20     fr       '<html> ... html code here </html>'
21     de       '<html> ... html code here </html>'
22     it       '<html> ... html code here </html>'
23     en       '<html> ... html code here </html>'

我的想法是将html代码导出到每行一个文件,如

  • 20_fr.html将包含id 20
  • 的html列
  • 21_de.html将包含id 21
  • 的html列
  • 等...

是否可以像this example一样用SQL语言将所有行导出到一个文件中。

我知道我可以用Java或任何其他语言来做,但我只对SQL感兴趣(存储过程可以没问题)。

1 个答案:

答案 0 :(得分:10)

您可以将SELECT语句与INTO和OUTFILE子句一起使用。

请参阅:http://dev.mysql.com/doc/refman/5.7/en/select-into.html

SELECT html
FROM mytable
WHERE lang = 'fr'
INTO OUTFILE 'frdata.txt'

以下SQL查询可能用于在表中每行生成一个文件输出语句。请注意使用CONCAT函数每行构建一个新的SQL SELECT INTO OUTFILE命令。

SELECT CONCAT( 'SELECT html from mytable where lang=''', lang, '''', ' INTO OUTFILE ''', CAST(id AS CHAR), '_', lang, '.html'';')

FROM mytable

ORDER BY id;

这将产生声明:

SELECT html from mytable where lang='fr' INTO OUTFILE '20_fr.html';

SELECT html from mytable where lang='de' INTO OUTFILE '21_de.html';

SELECT html from mytable where lang='it' INTO OUTFILE '22_it.html';

...  
相关问题