我有一个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 21_de.html
将包含id 21 是否可以像this example一样用SQL语言将所有行导出到一个文件中。
我知道我可以用Java或任何其他语言来做,但我只对SQL感兴趣(存储过程可以没问题)。
答案 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';
...