我有一个表,需要将其拆分为许多 .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 * FROM table WHERE `col1` = 'value' INTO OUTFILE c:\results - value.csv FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ' "' LINES TERMINATED BY '\n';
如何执行这些语句?
最佳答案
您可以使用临时文件夹作为中间人,并将其保存为 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
关于mysql - 如何在mysql中将字段的内容作为语句执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215551/