행별로 SQL 쿼리 출력 형식을 지정하는 방법

행별로 SQL 쿼리 출력 형식을 지정하는 방법

다음 쿼리는 이름이 지정된 변수의 값을 가져옵니다.result

result=`mysql --user=root --password=password1 deployment --host=localhost -Ns -e "SELECT DATE_FORMAT(LAST_DAY(url_timestamp), '%M %Y') month, COUNT(url_timestamp) counter FROM mytable WHERE status='PRODUCTION' and url_timestamp >= NOW() - INTERVAL 1 YEAR GROUP BY month, LAST_DAY(url_timestamp) ORDER BY LAST_DAY(url_timestamp);"`

echo $result

산출:

November 2019 43 December 2019 556 January 2020 111 February 2020 221   ....    November 2020 98

참고: SQL 클라이언트에 표시되는 SQL 쿼리의 출력은 올바른 형식입니다. 그러나 쉘 변수에 할당되면 행 형식이 손실됩니다.

내 예상 결과는 다음과 같습니다

November 2019 43 
December 2019 556
January 2020 111
February 2020 221
   ....    
   ....
November 2020 98

뭔가 제안해주실 수 있나요?

답변1

참조 변수:

echo "$result"

그리고사용하는 것이 더 좋습니다printf:

printf '%s\n' "$result"

이 유형을 사용하는 것이 더 좋습니다명령 대체$(...)대신에.

관련 정보