如何快速获取多列表中的大部分字段

31 篇文章 0 订阅
25 篇文章 1 订阅

场景:

项目上经常需要查询很多表中的大部分列,如何快速生成相应的SQL语句呢?

测试环境:

mysql5.7.29
pg11.6
oracle11.2.0.4

功能验证:

mysql5.7.29

查询业务表中除’ID’,‘title’以外所有的列
SELECT CONCAT(’ select ‘,GROUP_CONCAT(COLUMN_NAME),’ from ‘, TABLE_NAME,’ ;’) FROM information_schema.COLUMNS WHERE table_name = ‘server_info’ AND TABLE_SCHEMA = ‘webdata’ and COLUMN_NAME not in (‘ID’,‘title’)
生成的sql语句如下
select title,type_id,type,category_id,category,icon,longitude,latitude,is_del,sid,latitude_bd,longitude_bd,is_complete,ec_url,show_level,voice_url,icon_s,pid,scenic_lat_lng_id,is_more_area_show from server_info ;

pg11.6

select ‘select ‘||string_agg(column_name,’,’)||’ from ‘||table_name||’;’ from information_schema.columns where table_schema=‘public’ and table_name=‘pic’ and column_name not in(‘id’,‘type’)
group by table_name;

oracle11.2.0.4

总结:

1、项目上要查询表中大部分列,通过这种方式来生成sql语句还是比较高效的
2、想法很重要,当要查询一个表中大部分列时,挨个输入字段名太多了,得反向思考。
3、你遇到上面的场景会怎么做呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值