1
我有一个MySQL数据库中的表像这样Mysql的正则表达式数字
id | values
1 | 5,6,8,1,9
2 | 12,22,5,20
3 | 18,55,3,2
我想在SELECT语句帮助行
要选择包含数字1或2
没有选择行包含像12或22
SELECT * FROM test WHERE values REGEXP '/(^[,])?(1)(^[,])?/';
我有一个MySQL数据库中的表像这样Mysql的正则表达式数字
id | values
1 | 5,6,8,1,9
2 | 12,22,5,20
3 | 18,55,3,2
我想在SELECT语句帮助行
要选择包含数字1或2
没有选择行包含像12或22
SELECT * FROM test WHERE values REGEXP '/(^[,])?(1)(^[,])?/';
这个数字排是你应该使用正则表达式:(^ |)[12]($ | ,)
SELECT * FROM test WHERE values REGEXP'/(^ |,)[12]($ |,)/';
使用MySQL的'IN_SET'函数。 – Gumbo 2014-11-21 15:40:34
我真的希望你可以将它转换为[正确标准化](http://en.wikipedia.org/wiki/Database_normalization)数据结构,因为数据库中的逗号分隔值是愤怒诱导的。 – tadman 2014-11-21 15:45:45
'..WHERE FIND_IN_SET(1,values)> 0或FIND_IN_SET(2,values)> 0' – Mihai 2014-11-21 15:46:45