2011-08-10 381 views
1

我有以下命名顏色在我的MySQL表列值:1; 2; 3; 11; 12的MySQL選擇使用REGEXP

id | color 
1 | 1;2 
2 | 2;11 
3 | 1;3 
4 | 12 

我想用REGEXP,只選擇具有該表的行顏色1.

當我使用簡單的表達式

color REGEXP '1' 

它也選擇具有值11或12,而我尋找那些只有值1行。所以當我使用上面的表達式時,它顯示了上面示例中所示的所有4行,因爲我希望它向我顯示僅帶有ID 1和3的行。

+2

您的數據庫違反了第一範式。您正在一列中保存多個值(顏色)。請規範化您的數據庫。 – Jacob

+1

我認爲這不是重點。 –

回答

0

你可以嘗試像

REGEXP '^1;|;1;|;1$' 

如果我沒看錯,這將無論是在開始一個分號或1兩間semicola,或者分號後一個1找個1。這應該是很重要的。