星空网 > 软件开发 > 数据库

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

脚本如下:

#!/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 $1}'` let linenum=linenum+1 if [ $linenum -eq 1 ];then  lines=$lines"concat_ws(':','{"'"'$coloumname'"'"',if("$coloumname" is null or $coloumname='','null',concat('"'"'"',$coloumname,'"'"'"')))" elif [ $linenum -eq $count ];then  lines=$lines",concat_ws(':','"'"'$coloumname'"'"',if("$coloumname" is null or $coloumname='','null}',concat('"'"'"',$coloumname,'"'"'"}'))))" else  lines=$lines",concat_ws(':','"'"'$coloumname'"'"',if("$coloumname" is null or $coloumname='','null',concat('"'"'"',$coloumname,'"'"'"')))" 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='','null',concat('"',id,'"'))),concat_ws(':','"name"',if(name is null or name='','null}',concat('"',name,'"}'))))

在MySQL中执行的结果如下:

mysql> select concat_ws(',',concat_ws(':','{"id"',if(id is null or id='','null',concat('"',id,'"'))),concat_ws(':','"name"',if(name is null or name='','null}',concat('"',name,'"}')))) json_format from t1;+---------------------------+| json_format        |+---------------------------+| {"id":"1","name":null}  || {"id":"1","name":null}  || {"id":"2","name":"hello"} |+---------------------------+3 rows in set (0.00 sec)

 

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

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

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

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

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

  • 反引号仍表示命令替换

  • \$表示$的字面值

  • \`表示`的字面值

  • \"表示"的字面值

  • \\表示\的字面值

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





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

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

阿联酋物流公司有哪些:https://www.goluckyvip.com/news/8415.html
柬埔寨物流公司有哪些:https://www.goluckyvip.com/news/8416.html
墨西哥物流公司有哪些:https://www.goluckyvip.com/news/8417.html
澳洲物流公司有哪些:https://www.goluckyvip.com/news/8418.html
泰国物流公司有哪些:https://www.goluckyvip.com/news/8419.html
Exel物流介绍:https://www.goluckyvip.com/news/842.html
一夜之间大批卖家货物被偷,又迎大量Listing将被下架!跨境赚钱"好日子"到头了?:https://www.goluckyvip.com/news/220219.html
晚上沈阳市区哪里好玩的地方 晚上沈阳有什么好玩的地方:https://www.vstour.cn/a/410235.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流