メールの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を置くとうまくいきますが、垂直方向のフォーマットを維持することをお勧めします。

ありがとう

編集:私のEメールの結果は次のとおりです。

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

出力を表形式で表示します。これは対話型の使用のためのデフォルトですが、バッチモードでテーブル出力を生成するために使用できます。

おすすめ記事