이메일의 mysql 쿼리 형식

이메일의 mysql 쿼리 형식

쉘 스크립트에 다음 쿼리가 있습니다.

mysql -e "use hive; select DISTINCT TAB.DB_NAME, TAB.TABLE_NAME from 
TABLE_PARAMS INNER JOIN TAB ON TABLE_PARAMS.TBL_ID = TAB.TBL_ID 
where PARAM_KEY = 'numRows'" -u root -p$Pass

명령줄에서 실행하면 형식이 훌륭하게 작동합니다. 그런데 결과를 이메일로 보내면

| mail -s "Missing compute stats" [email protected] >/dev/null 2>&1

어디에나. 결과를 이메일로 형식화하는 쉬운 방법이 있습니까? 나는 시도했습니다: 쿼리 끝에 \G를 넣으면 훌륭하게 작동하지만 세로 형식으로 유지하는 것이 좋습니다.

감사해요

편집: 내 이메일의 결과는 다음과 같습니다.

DB_NAME TABLE_NAME
customer_touch  tbldatelookup
customer_touch_archive_bb   bb_comm_camphist_ltd
customer_touch_archive_bb   bb_comm_camphist033114
customer_touch_archive_bb   bb_ed_camphist
customer_touch_archive_bb   camphist
customer_touch_archive_bb   cd_drop

내가 보고 싶은 것:

+---------------------------------+-----------------------------+
| DB_NAME                         | TABLE_NAME                  |
+---------------------------------+-----------------------------+
| customer_touch                  | tbldatelookup               |
| customer_touch_archive_bb       | bb_comm_chist_ltd           |
| customer_touch_archive_bb       | st_cla_sa                   |
| customer_touch_archive_bb       | st_cla_a                    |
| customer_touchpoint_archive_stg | tier_r_prod_h27             |
+---------------------------------+-----------------------------+

답변1

클라이언트 와 함께 --table또는 사용 :-tmysql

mysql -t -D hive -u root -p"$Pass" \
    -e "SELECT DISTINCT TAB.DB_NAME, TAB.TABLE_NAME
        FROM TABLE_PARAMS
        INNER JOIN TAB ON TABLE_PARAMS.TBL_ID = TAB.TBL_ID 
        WHERE PARAM_KEY = 'numRows'" |
mail -s etc. etc.

(그런데 이 SQL은 좀 이상하지 않나요? 어디서 나온 SQL인가요 TAB?)

매뉴얼에서:

--table,-t

출력을 표 형식으로 표시합니다. 이는 대화형 사용을 위한 기본값이지만 일괄 처리 모드에서 테이블 출력을 생성하는 데 사용할 수 있습니다.

관련 정보