1. 程式人生 > >【DB】sqlite3 資料去重與萬用字元

【DB】sqlite3 資料去重與萬用字元

背景

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

參考資料

(全文完)