我有一个mysql命令: -
“mysql -uroot -pxxx -e”使用dbname; select * from tablename;“| wc -l”
其输出为“23”,我有多个tablename,我需要数字,我想在这样的文件中重定位这些数字:
"table1 = 23"
"table2 = 25"
"table3 = 45"
我希望使用for循环或while循环但到目前为止没有成功。
答案 0 :(得分:0)
您可以在命令的末尾添加>> outputfile.txt
,使其类似于:
mysql -uroot -pxxx -e "use dbname; select * from tablename;" | wc -l >> outputfile.txt
>>
运算符告诉shell将输出附加到命名文件(单个>
将覆盖该文件)。这样,多个调用将附加到同一个文件中,从而获得您正在寻找的内容。
HOWEVER ,正如我在评论中所说,我认为你应该让数据库做数据库擅长的事情(I.E.聚合和操纵数据)。您可以创建一个查询来计算多个表中的行数,在mysql中可能看起来像这样:
SELECT 'table1' AS table_label, COUNT(*) AS table_size FROM table1
UNION SELECT 'table2', COUNT(*) FROM table2
UNION SELECT 'table3', COUNT(*) FROM table3