【DB】sqlite3 資料去重與萬用字元
阿新 • • 發佈:2019-02-19
背景
使用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
參考資料
(全文完)