BASH– 如何读取文件内容以将结果插入到mysql WHERE子句中

BASH– 如何读取文件内容以将结果插入到mysql WHERE子句中,第1张

概述我正在尝试创建一个文件(称为帐户)并使用bash脚本(称之为* name_checker *)循环遍历每一行并将其转换为多个字符串以存储在名为'$NAMES'的变量中,用于mysql WHERE IN条款例如:我的脚本* name_checker *中的查询是基本的:SELECT * FROM表WHERE account_name IN('$NAMES')I

我正在尝试创建一个文件(称为帐户)并使用bash脚本(称之为* name_checker *)循环遍历每一行并将其转换为多个字符串以存储在名为’$nameS’的变量中,用于mysql WHERE IN条款

例如:

我的脚本* name_checker *中的查询是基本的:

SELECT * FROM表WHERE account_name IN(‘$nameS’)

IN语句的值需要用逗号分隔并放入单引号中.

我的帐户文件将是由换行符分隔的名称:

name1

name2

name3

所以我需要我的脚本(* name_checker *)来删除换行符并用单引号括起每个名称并用逗号分隔它们.运行脚本时所需的结果将是

SELECT * FROM表WHERE account_name IN(‘name1′,’name2′,’name3’)

我对此有一些困难,我对使用sed不太熟悉.感谢帮助!

最佳答案无需调用外部实用程序即可完成.

cat >Accounts.txt <

脚本:

while read x; do nameS="$nameS,'$x'"; done nameS=${nameS:1}sql='SELECT * FROM table WHERE account_name IN ('$nameS')'echo "$sql"

输出:

SELECT * FROM table WHERE account_name IN ('name1','name2','name3')

或者它甚至可以简化去除显式循环

printf -v nameS ",'%s'" $(nameS=${nameS:1}echo "$nameS";

输出:

'name1','name3'
总结

以上是内存溢出为你收集整理的BASH – 如何读取文件内容以将结果插入到mysql WHERE子句中全部内容,希望文章能够帮你解决BASH – 如何读取文件内容以将结果插入到mysql WHERE子句中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167675.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)