2015-12-15 68 views
0

在MySQL我試圖驗證一個有效的電子郵件,但我不 知道如何使用約束的正則表達式 我不想使用TRIGGER它是可能的??!sql正則表達式檢查約束

+2

MySQL不支持'CHECK'約束,所以恕我直言,似乎不可能做到這一點沒有觸發。 – ozy

+0

你想在MySQL或PHP中做到這一點嗎? –

+0

您正在嘗試驗證何時選擇或插入/更新?你可以驗證服務器端的插入/更新。你可以在where子句中選擇一個正則表達式。 – chris85

回答

0

在MySQL中,你可以用這個有效的電子郵件或NOT正則表達式查找無效

select email from your_table where email 
     REGEXP '^[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$'; 

或ORACLE

SELECT email 
FROM your_table 
WHERE REGEXP_LIKE (email, '[A-Z0-9._%-][email protected][A-Z0-9._%-]+\.[A-Z]{2,4}'); 

,但記住的是不是這個絕對的解決方案,您能找到有用這SO帖子Using a regular expression to validate an email address

+0

不,我不去從數據庫中選擇我不會添加約束,當我去我的表中插入價值 –

+0

爲此,你應該創建觸發器,(看看如何創建觸發器),並應用正則表達式在答案http:///stackoverflow.com/questions/16005283/is-it-possible-to-enforce-data-checking-in-mysql-using-regular-expression – scaisEdge

+0

感謝您的幫助,我是初學者,我尋找一個簡單的方法 –