在使用mysql的日常生活中,偶尔会有一些奇奇怪怪的需求,例如实现类似:select * EXCEPT password,address from users; 要想从users信息表中查询用户信息,但又不想把用户密码(加密后的,完全没有看的必要)、用户地址显示在查询结果中,该怎么办呢?PS:mysql中是没有EXCEPT这种用法的,上面只是打个比方。

网上有看到建议写SQL脚本的,应该会很牛逼,但是本人mysql才疏学浅,完全不会啊!咋办呢?只能用shell脚本试试了。

试试就试试!两个小时后.....

-------------------------------------------------------------------------------------------------------------------------

#!/bin/bash

mysql_host="127.0.0.1"                      # mysql主机地址

mysql_port="3306"                              # 数据库端口号

mysql_user="root"                               # mysql用户名

mysql_password="123456"                 # mysql密码

mysql_database="testing"                   # 数据库名称

mysql_table="users"                            # 数据库某张表名称

key_word="Field"                                 # desc时grep取得关键词

except="user_id|password|address|en_name"       # 排除在外的字段,格式为 A|B|C|D......

echo

number=`mysql -u$mysql_user -p$mysql_password -h$mysql_host -P$mysql_port -e"use $mysql_database;desc $mysql_table;" | gawk '{print $1}' | egrep -cxv "($key_word|$except)"`

line=`mysql -u$mysql_user -p$mysql_password -h$mysql_host -P$mysql_port -e"use $mysql_database;desc $mysql_table;" | gawk '{print $1}' | egrep -xv "($key_word|$except)" | gawk -vi=$number '{if (NR==i){print $1} else {printf"%s,",$1}}'`

mysql -u$mysql_user -p$mysql_password -h$mysql_host -P$mysql_port -e"select $line from $mysql_database.$mysql_table"

echo

-------------------------------------------------------------------------------------------------------------------------

mysql 排除字段_mysql中select某表时排除个别字段,shell实现相关推荐

  1. mysql 分区合并_mysql中的合并表和分区表详解(经常使用的概念)

    分区表是mysql5.1之后的新特性,合并表已经存在很长时间了.这篇文章主要介绍这两个概念以及他们基本的操作. 一.合并表 合并表说实话是一种将要被淘汰的技术,但是掌握了合并表的概念再去看分区表就比较 ...

  2. mysql primary重复_mysql中primary key重复时的处理办法

    mysql中primary key重复时的处理办法 文章作者:网友投稿 发布时间:2010-03-14 22:25:52 来源:网络 当insert进数据表, 发生唯一key(unique key与p ...

  3. 小记mysql备份同库中一张表的历史记录

    mysql备份同库中一张表的历史记录 insert into -select 需求 如今有个这么一个需求.mysql中有个表.数据增长的非常快.可是呢这个数据有效期也就是1个月,一个月曾经的记录不太重 ...

  4. mysql字段掩码_在必须输入字母A~Z或数字0~9数据库中设计表时,如果将字段的输入掩码设置为“LLLL”,则该字段能够接受的输入是()_学小易找答案...

    [单选题]关于Access2010的索引,下列叙述中错误的是() [单选题]痰饮淤血() [单选题]关于Access查询中的数据源,下列说法中正确的是 [单选题]对Access2010表中某一个字段建 ...

  5. MySQL数据库建表时对于某个字段设置了默认值,但是使用Spring Data Jpa的save后默认值没有生效

    问题描述:MySQL数据库建表时对于某个字段设置了默认值,但是使用Spring Data Jpa的save后默认值没有生效.MySQL数据库中构建的用户表表结构如下所示: DROP TABLE IF ...

  6. Visio 2007中进行数据库建模时如何显示字段类型以及概念名称

    关于在VISIO中进行数据库建模时如何显示字段类型,以及注释的 1 如何显示字段类型:   在visio菜单上--->点击数据库--->选项--->文档    打开后选择表这项,在上 ...

  7. 在mysql中删除表中字段_MySQL中的表中增加删除字段

    1.增加一个字段 alter table user表 add COLUMN new1字段 VARCHAR(20)   NOT NULL DEFAULT 0; //增加一个字段,VARCHERA 20 ...

  8. mysql 批量添加字段前缀_MySQL中批量前缀表的sql语句

    1.批量删除前缀表sql语句 先查询生成需要操作的表 Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.t ...

  9. mysql改存储引擎教程_MySQL中修改数据表存储引擎的三种方法

    第一种方法:ALTER TABLE 将表从一个引擎修改为另一个引擎最简单的办法是使用ALTER TABLE语句,转换表的存储引擎会导致失去原引擎相关的所有特性. 例:将mytable的引擎修改为Inn ...

最新文章

  1. 23种设计模式(一)单例模式
  2. 中国力量占领KDD:包揽“大数据领域世界杯”全部冠亚军,北航拿下最佳学生论文奖...
  3. java 类的重载_Java自学-类和对象 方法重载
  4. CVPR 2021 involution:超越convolution和self-attention的神经网络新算子
  5. JAVA——Windows双击jar包为可执行操作
  6. PyCairo 中的剪裁和屏蔽
  7. GIT项目管理工具(part6)--放弃工作区文件修改及从仓库区恢复文件
  8. C#多线程与UI响应 防止界面假死不响应(子线程创建的窗体获取消息响应用Application.DoEvent )
  9. 如何保持纯洁男女关系……
  10. addcslashes php,php addcslashes函数怎么用
  11. 单片机实验-定时中断
  12. 移动云亮相 2021 IDC 年度盛典 共话变革与赋能
  13. 超大图上的节点表征学习
  14. 德州python培训_人工智能在多人桌德州扑克比赛中战胜世界顶尖选手
  15. flexsession禁用_flex(替代session过期)用户长时间不操作要求重新登录的处理
  16. ASP.NET程序中常用代码汇总-1
  17. Linux学习(1)阿里云服务器及配置、使用xshell远程连接
  18. 王者荣耀刷金币C/C++语言脚本
  19. 2010年RSA大会RSA总裁主题演讲:云的安全
  20. 2022-2028年全球与中国汽车超声波传感器行业深度分析

热门文章

  1. pjsip java_pjsip_java
  2. 这些科技公司们的名字,都是从何而来?
  3. PSCP和SCP区别和用法
  4. 团体思维创意游戏1:人体风暴
  5. python语言简介-发展历程-特点-应用领域
  6. swapIDC主机管理软件云免签支付接口源码改造-云端状态查询接口
  7. 学习会计实操真的有用吗?
  8. 《外星人就在月球背面》值得一读
  9. matlab怎么输入积分公式,在matlab下用梯形法求函数的积分
  10. Python爬取视频(m3u8格式)