zoukankan      html  css  js  c++  java
  • mysql数据库的一个偷懒的小方式,查询时拒绝写*,但也拒绝大量的手动复制粘贴

    今天分享一个mysql的偷懒小技巧,

    通常一般查询数据库时,都会有以下的写法

    select 查询字段名 from 表名 where 条件

    正常情况下,查询字段名这里尽量不要使用*号来代替所有表中的字段,因为使用*号会将该表里面所有匹配到的数据中所有字段的数据都会查询出来返回到结果,

    然而绝大部分情况都不可能会去使用表里面的所有字段,所以使用*大多情况下都会造成网络资源和内存资源的浪费,但是用*号确实很方便,比如你有40个字段,

    ,要使用30个字段,用*来代替可能一两秒你的单表查询sql语句就写好了,但写30个要使用的字段的话几分钟都难以写出来,因为你需要去一个个的拷贝那些字段名,

    遇到这种情况,那么我们可以执行以下的一句sql

    SELECT
    GROUP_CONCAT( CONCAT( 'a.', column_name ), '' )
    FROM
    Information_schema.COLUMNS
    WHERE
    table_Name = 'table_name'
    AND TABLE_SCHEMA = 'bjto';

    注意,这句sql仅限于mysql where条件后面跟两个参数,第一个是表名,第二个是数据库名(防止多个数据库有相同的表名会多出不要的字段)

    当你正确的执行sql之后 ,大概会得到这么一个东西

    这里有a.是因为我需要有它,根据不同情况修改,数据库返回给我们一行数据,这是该表里面的所有字段信息,然后你将他复制到你需要的地方,将不用的直接删除,这样是不是省下了很多的复制粘贴步骤

    好,接下来我们分析一 下这条sql里面用到的知识点

    1、GROUP_CONCAT()函数

             他可以将我们mysql查询到的结果集多行数据用,号连接拼接成一行

    2、CONCAT()函数

             因为我最终的查询sql里面是取了别名的,所以这里需要加一个a.,CONCAT函数也可以理解成字符串拼接作用

    3、Information_schema.COLUMNS 

             mysql里面可以通过他来查询所有的表结构信息,包括字段名,字段类型,注释等

  • 相关阅读:
    D3学习笔记一
    Python生成pyc文件
    Linux上用户之间对话
    uwsgi错误invalid request block size
    Nginx的Permission denied错误
    CentOS7关闭防火墙
    CentOS7.0安装Nginx
    应用IBatisNet+Castle进行项目的开发
    再论IBatisNet + Castle进行项目的开发
    DotNet软件开发框架
  • 原文地址:https://www.cnblogs.com/tzpRoomForLearning/p/10300386.html
Copyright © 2011-2022 走看看