利用Shell脚本将MySQL表中的数据转化为json格式

利用Shell脚本将MySQL表中的数据转化为json格式,第1张

概述脚本如下:#!/bin/bashmysql -s -phello test >1.log select * from t1;+------+-------+| id | name |+-----

脚本如下:

#!/bin/bashMysqL -s -phello test >1.log <<EOFdesc t1;EOFlines="concat_ws(',',"count=`cat 1.log|wc -l`linenum=0while read linedo coloumname=`echo $line |awk '{print }'` let linenum=linenum+1  if [ $linenum -eq 1 ];then    lines=$linesconcat_ws(':','{"''$coloumname'"',if("$coloumname is null or $coloumname='','null',concat('')))" elif [ $linenum -eq $count ];,concat_ws(':','null}',1)">}'))))else"  fidone < 1.logecho $lines

表t1中的数据如下:

MysqL> select * from t1;+------+-------+| ID   | name  |+------+-------+|    1 |       ||    1 | NulL  ||    2 | hello |+------+-------+3 rows in set (0.00 sec)

脚本执行的结果如下:

concat_ws(',concat_ws(:{"ID"if(ID is null or ID='',1)">nullID,1)">'))),1)">"name"if(name is null or name=null}"}'))))

在MysqL中执行的结果如下:

MysqL> select concat_ws()))) Json_format from t1;+---------------------------+| Json_format               |+---------------------------+| {ID":1",1)">name":null}    || {2hello"} |+---------------------------+0.00 sec)

 

技巧:关于shell脚本中单引号和双引号的区别

shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。

单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。

双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:

$加变量名可以取变量的值

反引号仍表示命令替换

\$表示$的字面值

\`表示`的字面值

\"表示"的字面值

\\表示\的字面值

除以上情况之外,在其它字符前面的\无特殊含义,只表示字面值。

总结

以上是内存溢出为你收集整理的利用Shell脚本将MySQL表中的数据转化为json格式全部内容,希望文章能够帮你解决利用Shell脚本将MySQL表中的数据转化为json格式所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存