gpt4 book ai didi

mysql - 从数组中设置 mysql 语句中的列和值

转载 作者:行者123 更新时间:2023-11-29 17:13:18 25 4
gpt4 key购买 nike

是否可以将 mysql 查询中的列和值设置为等于一组可以更改大小和内容的数组?我想过使用循环,但我意识到我可以弄清楚如何表达

mysql -u$user -p$password -h$host $database<<EOFMYSQL 
INSERT INTO customers (${ArrayA[0]}, ${ArrayA[1]}, ${ArrayA[2]}, ${ArrayA[3]})
VALUES ('${Array2[0]}' , '${ArrayB[1]}' , '${ArrayB[2]}' , '${ArrayB[3]}')
EOFMYSQL

循环的想法

mysql -u$user -p$password -h$host $database<<EOFMYSQL 
for (( c=0; c<=${#ArrayA[@]}; c++ ))
do
echo $c
INSERT INTO Customers (${ArrayA[$c]})
VALUES ('${ArrayB[$c]}')
done
EOFMYSQL

有什么建议吗?

最佳答案

您可以尝试类似的方法在 bash 中处理数组...

fields=(field1 field2 field3)
vals=("val1" "val2" "val3")

nvals=()
# need to add the single quotes around the values
for v in "${vals[@]}"; do nvals+=("'$v'"); done
# keep the old value of IFS so we can reset it. Of course, if this is
# being done in a script this may not be necessary.
oldifs=$IFS
# set bash's word separator to a comma so that is included in the expansions
IFS=','
into="${fields[*]}"
values="${nvals[*]}"
echo "$into"
echo "$values"
IFS=$oldifs
# this is just to show the expansion with the original IFS
into="${fields[*]}"
echo "back to regular IFS:"
echo "$into"

结果:

字段1,字段2,字段3
'val1','val2','val3'
回到常规 IFS:
字段1 字段2 字段3

使用 [*] 进行数组扩展只需要 IFS 变量(用于分隔单词的标准 bash 变量)的第一个字符,因此我无法添加任何空格以使其更具可读性。当然,当前会忽略包含非标准字符和嵌入单引号的值的字段。

我还发现我必须将扩展设置为变量(到和值)才能正确扩展,我不能只是回显数组,例如

回显“${into[*]}”

关于mysql - 从数组中设置 mysql 语句中的列和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773352/

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