我对此还很陌生,所以请耐心等待,但我对 bash 的理解是我可以运行
mysql --host=hostname --user=username --password=password -e "SELECT * FROM database.table;"
但是我从其他手册中几乎不知道如何将它们放入实际的bash变量中,有人提到使用
read a b c
do while
echo "..${a}..${b}..${c}.."
但我不明白如何将它们读入变量?
另外,在读取变量时,我会做类似的事情
#>WGET $a
然后再次登录mysql并执行类似的操作
LOAD DATA INFILE data.csv INTO thattable ON DUPLICATE UPDATE
我也想要这样的东西 插入该表,其中(我刚刚加载了信息)日期=今天 但是因为会有多个日期,我该怎么做,是的,这一切都需要可以 bash php 太慢,我想避免使用 C,除非这是唯一的方法,
谢谢,我知道这很多!
-AW
最佳答案
选项 1
使用“select ...\G”,将结果存储在 tmp 文件中并使用 grep 查找列。
举例:
mytmp=$(mktemp /tmp/mytemp.XXXXXX)
mysql --host=hostname --user=username --password=password -e "SELECT * FROM database.table \G;" > $mytmp
column_foo=$( fgrep COLUMN_FOO $mytmp | cut -d ':' -f2-)
column_bar=$( fgrep COLUMN_BAR $mytmp | cut -d ':' -f2-)
echo $column_foo
echo $column_bar
选项 2
如果列数较多,请将它们全部存储在哈希数组中:
mytmp=$(mktemp /tmp/mytemp.XXXXXX)
mysql --host=hostname --user=username --password=password -e "SELECT * FROM database.table \G;" | xargs -I{} echo {} > $mytmp
declare -A a
while IFS=':' read k s; do a[$k]=$s; done < $mytmp
echo ${a[COLUMN_FOO]}
echo ${a[COLUMN_BAR]}
关于mysql - 如何将 mysql SELECT 读入 bash 变量,然后使用这些变量 INSERT INTO 不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31790629/