나에겐 이런 진술이 있다
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
.