如何在mysql中作为语句执行字段的内容?

时间:2013-08-13 17:30:59

标签: mysql export

我有一个表需要拆分成许多.csv文件,每个文件都有一组基于其中一列的内容的行。

我在这里找到了这个解决方案:Export Table Into Files Grouping By A Column,并且查询工作正常:

SELECT concat('SELECT * FROM YourTable WHERE col1 = ''',
    col1, ''' INTO OUTFILE '''c:\result-', col1, '.txt'' ', 
    'FIELDS TERMINATED BY '','' OPTIONALLY ENCLOSED BY ''"''',
    'LINES TERMINATED BY ''\n'';')
FROM YourTable
GROUP BY col1

但是,当我执行此查询时,我得到一列字段,其中每个字段都有一个这样的select语句:

SELECT * FROM table WHERE `col1` = 'value' INTO OUTFILE c:\results - value.csv  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ' "' LINES TERMINATED BY '\n';

我如何执行这些陈述?

1 个答案:

答案 0 :(得分:0)

你可以使用你的临时文件夹作为中间人,并将其保存为sql文件,然后运行该文件:

SELECT CONCAT('UPDATE a SET b = ', c, ' WHERE d = ', e, ';') AS query
   FROM x INTO OUTFILE '/tmp/update_a.sql';
SOURCE '/tmp/update_a.sql';

很容易在控制台中进行一次性查询,在软件中使用,你应该使用更好的东西,比如@xQbert sugested