2014年11月13日 星期四

[SQL] 從 Table 中取出 Column 1 取資料並塞進 Column 2 方法 @ MySQL 5.6

有一張 table 儲存 field1, field2 為原始資料,由於資料尚未驗證,想要透過 REGEXP 驗證資料結果,這時就想到每次找都要驗證一次有點煩,所以就乾脆建立 field3,將驗證過的資料儲存起來。

至於解法方面,就單純把撈出來的資料再 INSERT 回去 :P 假設有一張 Table 名為 mTable,其中 key 為 field1, field2,而 field3 預設可以為空,目標則是將 field1 驗證過的資料儲存在 field3,未來使用時就可以透過 field3 來當作資料驗證。

新增資料用法:

INSERT INTO (field1, field2) VALUES ... ;

驗證 field1 資料,把正確格式擺進 field3:

INSERT mTable (field1, field2, field3)

SELECT field1, field2, field1 AS field3 FROM mTable WHERE field3 IS NULL AND field1 REGEXP '^[0-9A-Za-z]+$'

ON DUPLICATE KEY UPDATE

field3 = VALUES(field3)


如此一來,就完成驗證 :P

接著應該也可以嘗試 MySQL trigger 用法?不過,驗證資料這件事應該不要叫 DB 做才對 XD 只是...環境所限啊。

沒有留言:

張貼留言