2014-11-21 5 views
1

У меня есть таблица базы данных MySQL со строками, как этогоMysql регулярного выражения для чисел

id | values 

1 | 5,6,8,1,9 

2 | 12,22,5,20 

3 | 18,55,3,2 

Я хочу помочь в ЗЕЬЕСТЕ

Чтобы выбрать строки, которые содержат номера 1 или 2

Без выбора строки, содержащие цифры, как 12 или 22

SELECT * FROM test WHERE values REGEXP '/(^[,])?(1)(^[,])?/'; 
+0

Используйте функцию 'IN_SET' MySQL. – Gumbo

+6

Я действительно надеюсь, что вы можете преобразовать это в структуру данных [правильно нормированная] (http://en.wikipedia.org/wiki/Database_normalization), потому что значения, разделенные запятой в базе данных, являются ярости. – tadman

+3

'..WHERE FIND_IN_SET (1, значения)> 0 ИЛИ FIND_IN_SET (2, значения)> 0' – Mihai

ответ

0

Это регулярное выражение следует использовать: (^ |,) [12] ($ | ,)

SELECT * FROM test WHERE значения REGEXP '/ (^ |,) [12] ($ |,) /';

Смежные вопросы