热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlite3数据去重与通配符

背景使用sqlite3的命令实现数据去重,与无效数据删除等操作。所有操作均封装在shellscript中。创建数据库邮件数据库:UserEmail.dbEmail表:TABLE_EM

背景

使用sqlite3的命令实现数据去重,与无效数据删除等操作。所有操作均封装在shell script中。

创建数据库
  • 邮件数据库:UserEmail.db
  • Email表:TABLE_EMAIL
#!/bin/bash
sqlite3 UserEmail.db "CREATE TABLE TABLE_EMAIL (
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
EMAIL CAHR(30) NOT NULL
)"
;

显示TABLE_EMAIL数据表中的内容
#!/bin/bash
sqlite3 UserEmail.db ".headers on" ".mode columns" "select * from TABLE_EMAIL";

假设原始数据如下
这里写图片描述
显然有重复的数据,现在来删除重复数据

删除表中重复数据
#!/bin/bash
sqlite3 UserEmail.db "DELETE FROM TABLE_EMAIL WHERE rowid NOT IN(SELECT MAX(rowid) rowid FROM TABLE_EMAIL GROUP BY EMAIL)";

去重后,表数据如下
这里写图片描述

  • 可以发现重复的数据已经只剩下一条了,接下来做email地址有效性检测。

通配符

假设以字符test开头的Email地址不合法,现用通配符删除。

#!/bin/bash
sqlite3 UserEmail.db "DELETE FROM TABLE_EMAIL WHERE EMAIL LIKE 'test%'";
  • 删除非法email地址后的email表数据如下
    这里写图片描述

时间  : 2017年7月1日00:23:35


参考资料

[1] http://www.runoob.com/sqlite/sqlite-tutorial.html


推荐阅读
author-avatar
鐘彦璋864175
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有