gpt4 book ai didi

mysql - 将不同 MySQL 表的列粘贴到 ascii 文件中

转载 作者:行者123 更新时间:2023-11-30 01:04:56 25 4
gpt4 key购买 nike

我有数百个 MySQL 表,我想用每个 MySQL 表的第一列创建一个 ascii 表。

来自 MySQL 表

table A          table B  ...  table Z
A1 A2 A3 B1 B2 B3 Z1 Z2 Z3
A1 A2 A3 B1 B2 B3 Z1 Z2 Z3
A1 A2 A3 B1 B2 B3 Z1 Z2 Z3

转换为 ascii 文件

A1 B1 ... Z1
A1 B1 ... Z1
A1 B1 ... Z1

哪种方法更快?

表有数百个,列有数千行,并且大多数列具有相同的行数(因此我认为导出之前的“连接”是必要的)

非常感谢

最佳答案

我不是 bash 专家,但我会一步一步做事(其他专家可以编辑和改进我的答案)

#!/bin/bash
mysql -uusrname -ppassword -Ddatabasename -s -e 'show tables'
count=0
while read tablenames
do
fieldname=$(mysql -uusrname -ppassword -Ddatabasename -s -e "desc $tablename" | head -2 | tail -1 | awk -F " " '{print $1}');
echo "$tablenames,$fieldname" >> tempfile
done< $(mysql -uusrname -ppassword -Ddatabasename -s -e 'show tables')
lastcount=$(wc -l tempfile)
while read line
do
count=$(($count + 1))
if [ $count -eq 1 ]
then
echo "nothing to do"
elif [ $count -lt $lastcount ]
then
echo $line | awk -F "," '{print "(select "$2 "from" $1")"}' >> sqlcommand.sql
echo "union" >> sqlcommand.sql
else
echo $line | awk -F "," '{print "(select "$2 "from" $1");"}' >> sqlcommand.sql
done < tempfile

mysql -uusrname -ppassword -Ddatabasename << sqlcommand.sql >> outputasciifile.txt

关于mysql - 将不同 MySQL 表的列粘贴到 ascii 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com