文档章节

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

Jamie-Liu
 Jamie-Liu
发布于 2016/07/19 13:38
字数 409
阅读 212
收藏 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
粉丝 2
博文 18
码字总数 12142
作品 0
宜昌
MySQL数据库(三)

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

ww魏伟
01/02
0
0
Mysql(三)-数据导入,导出、管理表记录、条件匹配、表查询方式

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

段超超
2017/12/28
0
0
DBA成长之路---mysql数据库服务(二)

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

Xuenqlve
01/04
0
0
数据库:数据导入/数据导出

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

庞然大悟
2017/12/29
0
0
数据导入导出 、 表记录基本操作 、 查询及匹配条件 、 多表查询 、

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

大米叔叔
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

可爱的python测试开发库(python测试开发工具库汇总)

欢迎转载,转载请注明来源: github地址 谢谢点赞 本文地址 相关书籍下载 测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装。 链接 selenium - web UI自动化测试。 链...

python测试开发人工智能安全
56分钟前
2
0
Shiro | 实现权限验证完整版

写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源...

冯文议
今天
1
0
linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部