文档章节

mysql中select某表时排除个别字段,shell实现

Jamie-Liu
 Jamie-Liu
发布于 2016/07/19 13:38
字数 409
阅读 165
收藏 0
点赞 0
评论 0

    在使用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

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

 

© 著作权归作者所有

共有 人打赏支持
Jamie-Liu
粉丝 1
博文 16
码字总数 10329
作品 0
宜昌
MySQL数据库(三)

数据导入与导出 (1)数据导入mysql>load data infile "目录/文件名" into table 表名 /默认目录为 /var/lib/mysql-files,可修改配置文件改变默认目录,如不修改配置文件,默认且一定要在这个...

ww魏伟 ⋅ 01/02 ⋅ 0

DBA成长之路---mysql数据库服务(二)

管理表记录 增加 insert into 库.表 values(字段值列表); insert into 库.表(字段值列表) values(字段值列表); insert into 库.表 values(字段值列表),(字段值列表); 查询 单表查询 select 字...

Xuenqlve ⋅ 01/04 ⋅ 0

Mysql(三)-数据导入,导出、管理表记录、条件匹配、表查询方式

############################################################################################## 一、数据导入:把系统文件内容存储到数据库的表里 命令: load data infile "目录/文件"...

段超超 ⋅ 2017/12/28 ⋅ 0

MySQL表管理

MySQL 数据导入把系统文件的内容存储到数据库的表里/etc/passwd studb.user用户名 密码占位符 uid gid 描述信息 家目录 shell creat database studb;create table studb.user(name varcha...

肖纯 ⋅ 2017/12/31 ⋅ 0

数据库:数据导入/数据导出

一、数据导入: 把系统文件的内容存储到数据库的表里mysql> load data infile "目录/文件名" into table 库.表名 fields terminated by "字段间隔符号" lines terminated by "n"; 用户名:密...

庞然大悟 ⋅ 2017/12/29 ⋅ 0

Hive详细教程

 为什么选择Hive? 基于Hadoop的大数据的计算/扩展能力 支持SQL like查询语言 统一的元数据管理 简单编程 Hive的安装 1.1在hadoop生态圈中属于数据仓库的角色。他能够管理hadoop中的数据,...

simpler ⋅ 2014/04/29 ⋅ 6

如何高效快速地优化MySQL、SQL语句(附源码)

作者介绍 韩锋,宜信技术研发中心数据库架构师。精通多种关系型数据库,曾任职于当当网、TOM在线等公司,曾任多家公司首席DBA、数据库架构师等职,多年一线数据库架构、设计、开发经验。著有...

Yomut ⋅ 2016/10/10 ⋅ 0

MySQL查询优化-explain

一、MySQL 查询优化器是如何工作的 MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据...

dirgee ⋅ 2014/04/15 ⋅ 0

MySQL查询优化-explain

一、MySQL 查询优化器是如何工作的 MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据...

天空之风 ⋅ 2014/04/15 ⋅ 2

数据导入导出 、 表记录基本操作 、 查询及匹配条件 、 多表查询 、

数据管理:(管理表记录)数据导入:把系统文件的内容存储到数据库的表里.mysql> create table uesr( 查看默认使用目录及目录是否存在: show variables inke "securefilepriv" 格式: load data i...

大米叔叔 ⋅ 01/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 15分钟前 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 19分钟前 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 19分钟前 ⋅ 0

IT行业的变革就像世界杯德国对战墨西哥一样难以预测[图]

最近在观看世界杯,尤其是昨天的比赛,上一届卫冕冠军德国队居然0:1告负墨西哥,这创造了历史,首先是墨西哥从来没赢过德国队,其次是德国队36年来首站没输过,再差也是打平,而这次,德国队...

原创小博客 ⋅ 38分钟前 ⋅ 0

解决CentOS6、7,/etc/sysconfig/下没有iptables的问题

一、Centos 6版本解决办法: 1.任意运行一条iptables防火墙规则配置命令: iptables -P OUTPUT ACCEPT 2.对iptables服务进行保存: service iptables save 3.重启iptables服务: service ...

寰宇01 ⋅ 48分钟前 ⋅ 2

数据库备份和恢复

备份:mysqldump -u root -p 数据库>磁盘路径 恢复:mysql -u root -p 数据库<sql脚本的磁盘路径

anlve ⋅ 今天 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部