当前位置: 首页> 游戏> 手游 > 北京建设网上银行_石家庄百度快照优化_谷歌手机版浏览器官网_磁力搜索器下载

北京建设网上银行_石家庄百度快照优化_谷歌手机版浏览器官网_磁力搜索器下载

时间:2025/7/9 1:09:58来源:https://blog.csdn.net/u012190388/article/details/145026261 浏览次数:0次
北京建设网上银行_石家庄百度快照优化_谷歌手机版浏览器官网_磁力搜索器下载

文章目录

  • 需求描述
  • 实现思路
    • 1、如何查表信息
    • 2、如何取字段描述信息
    • 3、如何将列信息一行展示
    • 4、拼接最终结果

需求描述

如何将MySQL数据库中指定表【tb_order】的所有字段都展示出来,以备注中的中文名为列名。

实现思路

最终展示效果,即拼接出可执行执行的SQL,如下图所示。
在这里插入图片描述
建表语句如下所示。

CREATE TABLE `tb_order` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单id',`user_id` bigint(20) NOT NULL COMMENT '用户id:长度20位',`name` varchar(100) DEFAULT NULL COMMENT '商品名称',`pay_amount` bigint(20) NOT NULL COMMENT '商品价格:单位分',`order_status` varchar(8) DEFAULT NULL COMMENT '订单状态',`num` bigint(10) DEFAULT '0' COMMENT '商品数量',`data_info` varchar(255) DEFAULT NULL COMMENT '订单信息',`is_enable` varchar(10) DEFAULT NULL COMMENT '是否有效:1-有效',`created_user` varchar(20) DEFAULT NULL COMMENT '创建人',`created_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`id`) USING BTREE,KEY `indx_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

实现思路,即主要解决以下几个问题

1、如何查表信息

可以从 数据库系统表information_schemaCOLUMNS 中取目标表的信息。

SELECTORDINAL_POSITION,COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT
FROMinformation_schema. COLUMNS
WHERETABLE_NAME = 'tb_order';

执行SQL查询结果如下所示。
在这里插入图片描述

2、如何取字段描述信息

列备注的字段描述中有【冒号: 】,如何只取冒号前的内容,可 使用SUBSTRING_INDEX函数。

格式:SUBSTRING_INDEX(str, delimiter, number)
str 目标字符串
delimiter 截取的分隔符
number 表示出现的位置
即 返回从字符串str的第number个出现的分隔符delimiter之前的子串

对于本需求,截取冒号前的字符串,可使用 SUBSTRING_INDEX(column_comment, ‘:’, 1)

SELECTORDINAL_POSITION,COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT,SUBSTRING_INDEX(column_comment, ':', 1) as columnComment
FROMinformation_schema. COLUMNS
WHERETABLE_NAME = 'tb_order';

执行以上SQL,结果如下所示。
在这里插入图片描述

3、如何将列信息一行展示

将列的信息在一行显示,可 使用GROUP_CONCAT函数

SELECTORDINAL_POSITION,COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT,GROUP_CONCAT(SUBSTRING_INDEX(column_comment, ':', 1)) as columnComment
FROMinformation_schema. COLUMNS
WHERETABLE_NAME = 'tb_order';

执行以上SQL如下所示。
在这里插入图片描述

4、拼接最终结果

使用 CONCAT 函数,拼接想要关联展示的信息,比如 select 、as 等,即可将信息完全展示,最终SQL如下所示,使用时 替换其中的【tb_order】即可。

SELECT CONCAT('select ',GROUP_CONCAT(CONCAT(COLUMN_NAME,' as `',SUBSTRING_INDEX(column_comment, ':', 1)),'`'),' from ','tb_order') AS querySql
FROMinformation_schema.COLUMNS
WHERETABLE_NAME = 'tb_order';

执行以上SQL,结果如下所示。
在这里插入图片描述
注:中文作为列的命名 可使用【`】,英文状态下 esc键 下一行的第一个键。
复制出来的拼接的结果,即本案例中想要展示的内容,如下所示。

SELECTid AS `订单id`,user_id AS `用户id`,NAME AS `商品名称`,pay_amount AS `商品价格`,order_status AS `订单状态`,num AS `商品数量`,data_info AS `订单信息`,is_enable AS `是否有效`,created_user AS `创建人`,created_time AS `创建时间`
FROMtb_order

直接执行即可,控制台信息如下所示。
在这里插入图片描述
以上即本案例的过程,可参考使用。

关键字:北京建设网上银行_石家庄百度快照优化_谷歌手机版浏览器官网_磁力搜索器下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: