mysql - bash 从 bash 命令更新 mysql

标签 mysql sql bash

我想通过 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/

相关文章:

mysql - JPQL,搜索值是否为 IN 或 NULL

linux - 为什么一旦父 bash 脚本死亡,来自 bash 的 eval 调用的 child 就会成为孤儿?

linux - 如何在 bash shell 中使用管道?

mysql - RDS 与 EC2 for MySQL 在故障转移/复制设置方面有何区别?

MySQL如何从用户信息列中只获取用户名

mysql - 什么是二进制(应用程序/八位字节流)文件类型?

c++ - 如何在 SQLite 数据库中存储枚举

c# - 如果我正在调用 SqlReader.Read,我应该调用 SqlDataReader.HasRows

bash - 提取每个 ID 的主要号码和次要号码并生成 JSON 字符串

MySQL 派生表中列值的总和