2012-06-13 87 views
1

如何將MySql-Database中的字段與應該爲null或定義的字符串的正則表達式匹配? JavaScript中的表達是這樣的(在JS它的工作原理)/(.{0}|^ADO$)/帶NULL值的MySql正則表達式

+0

你不能這樣做(直接)在JavaScript中。 JavaScript將您匹配的對象轉換爲字符串,因此如果您在某個var爲空的匹配項上,那麼您將匹配字符串'null'。正則表達式無法區分包含字符串「null」的null var和var之間的區別。 還要注意'/(。{0} |^ADO $)/'會匹配任何字符串,因爲'。{0}'與*總是匹配的空表達式*相同。你的表達式等於'/(|^ADO $)/',這幾乎與'/(^ ADO $)?/'相同。 – Qtax

回答

4

所以你可以顯式地指定你想怎樣處理這可能是最明顯的使用IFNULL NULL(我一直在尋找讓代碼更容易理解的方法,而不是更棘手的方法)。也許是這樣的:

SELECT * from table where IFNULL(field, '') REGEXP 'whatever'; 
1

使用IS NULL,像這樣:

SELECT * FROM table WHERE (field IS NULL OR field = 'ADO') 
+0

作爲一個簡單的查詢,這將是正確的方式來做到這一點,你是對的,但我有的問題是在正則表達式中這樣做。 – andred