可以在这个SQL中添加逗号吗?

可以在这个SQL中添加逗号吗?

我有这样的声明

UPDATE `test`.`scores`
 SET
   id=1
   name='kobe'
   score=99
 WHERE
   id=1
   name='kobe'
   score=100
 UPDATE `test`.`scores`
 SET
   id=2
   name='tmac'
   score=70
 WHERE
   id=2
   name='tmac'
   score=100
 UPDATE `test`.`scores`
 SET
   id=3
   name='rose'
   score=80
 WHERE
   id=3
   name='rose'
   score=100
......

如何在其中添加,, and& ?;我想要我的结果像

UPDATE `test`.`scores`
 SET
   id=1,
   name='kobe',
   score=99
 WHERE
   id=1 and
   name='kobe' and
   score=100;

答案1

一定有比这更简单的事情:

awk '
/^ *UPDATE/   { prevsep=";" }
/^ *(SET|WHERE)/{ prevsep="" }
{ if(previous)print previous prevsep; previous = $0; prevsep = sep }
/^ *(UPDATE|SET|WHERE)/{ prevsep="" }
/^ *SET/  { sep="," }
/^ *WHERE/{ sep=" and" }
END { print previous ";" }'

每行都会被记住并使用前一个分隔符集进行打印,该分隔符是在该行之后由关键字 UPDATE SET WHERE 触发的previous分隔符设置的。sep这些关键字还会清除前一个分隔符(或将其设置为;),因此打印前一行时不带逗号或and

相关内容