2011-08-10 175 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。这应该是很重要的。