我想通过 bash 命令更新数据库:
#!/bin/bash
list= cat /home/wwwroot/list.txt;
mysql -u root -D dbname -e "UPDATE wp_postmeta SET meta_value = '$list' WHERE meta_key = 1";
cat/home/wwwroot/list.txt
文本 1
文本 2
文本3
...
如何在sql查询中读取$list变量?
谢谢。
最佳答案
Cat
在这里有点矫枉过正。
如果您需要以空格分隔的值,我建议使用数组。
list=($(</home/wwwroot/list.txt))
mysql -u root -D dbname -e "UPDATE wp_postmeta \
SET meta_value = '${list[@]}' WHERE meta_key = 1";
这里的优点是如果您需要逗号分隔值,那么您可以使用 bash [ parameter substitution ]实现你的脚。只需将查询更改为
mysql -u root -D dbname -e "UPDATE wp_postmeta \
SET meta_value = '${list[@]/%/,}' WHERE meta_key = 1";
#Note ${list[@]/%/,} appends comma after each value in the text file
一切顺利 :-)
关于mysql - bash 从 bash 命令更新 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47493038/