电子邮件中的 mysql 查询格式

电子邮件中的 mysql 查询格式

我在 shell 脚本中有以下查询:

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 是不是有点奇怪?它是TAB从哪里来的?)

从手册:

--table,-t

以表格格式显示输出。这是交互式使用的默认设置,但可用于以批处理模式生成表输出。

相关内容