我正在尝试更快地完成一项任务,并且遇到两个问题(希望可以包含在一个问题中,因为这两个问题都会出现在一个查询中)。
我想使用一个SQL查询的结果(多个ID)作为另一查询(FROM ...?)的表名。
然后(针对每个表)的最终结果应该用多个.csv OUTFILE而不是我目前拥有的输出。
我已经准备好两个查询,但是我认为这对于这个问题并不重要,这就是为什么我跳过了发布任何内容的原因。
您可能会给我有关最简单的SELECT查询的示例。
答案 0 :(得分:0)
您可以使用服务器端准备好的语句:
https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html
以下是一个希望对您有所帮助的示例:
select @q:=concat("select count(*) from ", tbl_name)
from my_db.my_tables where table_id = 3;
prepare s from @q;
execute s;
对于select count(*) from
等于3的tbl_name
值在my_db.my_tables
中执行table_id
都会导致执行结果。
要将结果导出为CSV,您可以执行以下操作:
select @q:=concat("select count(*) from ", tbl_name,
" into outfile '/tmp/data.csv' fields terminated by ','")
from my_db.my_tables where table_id = 3;
要详细了解SELECT ... INTO OUTFILE
: