регулярное выражение поиск числа из строки - PullRequest
0 голосов
/ 26 августа 2011

этот вопрос может быть очень простым для вас. Я использую MySQL регулярное выражение.

myQuery

select * from contents where categories regexp '{myPattern}';

область поля категорий 54,25,99,4,2 ... и т.д. строка.

мой вопрос, как я могу найти только число '4' из поля категорий.

извините за мой английский. помогите мне, пожалуйста.

Ответы [ 3 ]

6 голосов
/ 26 августа 2011

… WHERE FIND_IN_SET('4', categories) > 0

еще лучше нормализовать схему БД с категориями в их собственной таблице, а затем объединить эти таблицы вместе m: n

1 голос
/ 26 августа 2011

Способ соответствия «любой строке cvs, содержащей« 4 »в качестве значения в строке»:

mycolumn regexp '[[:<:]]4[[:>:]]' 

В mysql regex [[:<:]] означает «начало слова», а [[:>:]] означает «конец слова».

0 голосов
/ 26 августа 2011

Вы можете использовать это:

where categories RLIKE '(^|,)4($|,)';

Это будет совпадать, когда categories содержит 4, за которым следует , или ничего, а перед , или ничего.

...