MySQL用注释当表头

用中文注释当查询结果的表头

效果展示

# 若存储过程存在则删除
DROP PROCEDURE IF EXISTS sel;
# 创建一个存储过程
CREATE PROCEDURE sel(db VARCHAR(21845), tab VARCHAR(21845))
  # 开始内容
  BEGIN
    # 生成查询列注释放入 @colas 的语句
    SET @s = concat('
      SELECT group_concat(CASE COLUMN_COMMENT
                          WHEN \'\' THEN COLUMN_NAME
                          ELSE concat(COLUMN_NAME, \' AS \', COLUMN_COMMENT)
                          END SEPARATOR \', \') AS colas
      INTO @colas FROM information_schema.COLUMNS
      WHERE TABLE_SCHEMA = \'', db, '\' AND TABLE_NAME = \'', tab, '\'
    ');

    # 预编译、执行、释放
    PREPARE sel FROM @s;
    EXECUTE sel;
    DEALLOCATE PREPARE sel;

    # 拼接简单查询语句
    SET @s = concat('SELECT ', @colas, ' FROM ', db, '.', tab);

    PREPARE sel FROM @s;
    EXECUTE sel;
  END;

# 查询保存的 列名 AS 注释,
SELECT @colas;

# 使用例子 sel('数据库', '表');
CALL sel('test', 'job_depend');

# 预编译的语句再执行
EXECUTE sel;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

merge语句导致的CPU使用率过高的优化(二) (r7笔记第9天)

之前分享过一篇关于merge语句导致的CPU使用率过高优化的案例。http://blog.itpub.net/23718752/viewspace-181947...

2904
来自专栏Jerry的SAP技术分享

在ABAP里取得一个数据库表记录数的两种方法

这个函数使用起来很简单,只需要将想查询的数据库表名称维护进输入参数IT_TABLES:

1305
来自专栏java系列博客

关于ORACLE merge into 的两个常见错误

6503
来自专栏跟着阿笨一起玩NET

SQL读取XML字段类型的信息

id  Paymentype  Refundrole    paypalTransactionId    openReason 1   REFUND      ...

562
来自专栏乐沙弥的世界

PL/SQL 下邮件发送程序

      对DBA而言,尽管在os级别下发送邮件是轻而易举的事情,然而很多时候我们也需要在PL/SQL中来发送邮件,比如监控job的执行状况等。本文根据网友(...

722
来自专栏跟着阿笨一起玩NET

把数据库中表的内容转存为XML文件

510
来自专栏杨建荣的学习笔记

关于all_procedures的问题分析 (r9笔记第61天)

今天快下班的时候有一个同事问我一个存储过程的权限是否做过修改。我简单看了下发现这个滚出过程已经是很久以前创建的了,一直没有做过修改,所以就反馈给 他了。但是他过...

3356
来自专栏跟着阿笨一起玩NET

(3)合并列值与分拆列值

在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来,以便不时之需 :)

611
来自专栏数据库新发现

Oracle10gR2 New Feature:V$SESSION change tracking

作者:eygle 出处:http://www.eygle.com/blog 日期:September 15, 2005 本文链接:http://www.eyg...

392
来自专栏我的博客

explain

id        SELECT识别符。这是SELECT的查询序列号。 select_type 1.SIMPLE:简单的SELECT,不实用UNION或者子查询...

3329

扫码关注云+社区