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 条评论
登录 后参与评论

相关文章

来自专栏抠抠空间

MySql之数据操作

一、增 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3...

2828
来自专栏zcqshine's blog

mysql case when 多参数条件语法

45212
来自专栏抠抠空间

MySQL 如何删除有外键约束的表数据

今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

1043
来自专栏我的博客

Sqlite创建表以及默认当前时间

1、创建数据库 CREATE TABLE Joyous_sqlite ( id INTEGER NOT NULL, create_time TIMESTAM...

2473
来自专栏吴柯的运维笔记

MySQL索引类型及用法

2017年9月13日 12:55 索引类型: ? index索引: ? 在已有表中创建index索引: create index 索引名 on 表名(字段名)...

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

SQL Server 2008 新语法

1051
来自专栏Ryan Miao

Postgres和MySQL创建用户并授予db权限

Postgresql和MySQL还是有很多不同的。就比如授权来说。当下有个业务场景,我们的报表数据库需要根据业务划分不同的db,然后创建对应的user。

1124
来自专栏java初学

数据库索引

43517
来自专栏互联网杂技

外键约束

外键约束 foreign key 外键约束的要求: 父表和字表必须使用相同的存储引擎,禁止使用临时表; 数据库引擎只能是InnoDB; 外键列和参照列必须具有...

3579
来自专栏开源项目

Git 项目推荐 | 分布式系统唯一 ID 生成方法

image.png 在工程中引用sequence项目的sequence-client jar包 在的应用数据库中创建两个sequence表,sql语句如下:...

32411

扫码关注云+社区