Как сопоставить 2 из «1,2,7,9,13,3,10,4,21,6,12» в MySQL? - PullRequest
2 голосов
/ 16 декабря 2009

Я не знаком с регулярным выражением в MySQL.

Ответы [ 4 ]

8 голосов
/ 16 декабря 2009

Для проверки, существует ли значение в строке, вы можете использовать

mysql> SELECT FIND_IN_SET(15, '1,2,15,4,5,6');
+---------------------------------+
| FIND_IN_SET(15, '1,2,15,4,5,6') |
+---------------------------------+
|                               3 |
+---------------------------------+
1 row in set (0.00 sec)

и проверить его на наличие больше 0 (0 возвращается, если совпадений не найдено).

3 голосов
/ 16 декабря 2009

LIKE '%,2,%' для совпадения в середине, LIKE '2,%' для совпадения в начале, LIKE '%,2' для совпадения в конце и точного совпадения, вы можете использовать = '2'

ОБНОВЛЕНИЕ : Для работы во всех случаях вы можете использовать ИЛИ, X LIKE '%,2,%' OR X LIKE '2,%' OR X LIKE '%,2' OR X='2'

2 голосов
/ 16 декабря 2009

Какую проблему вы действительно пытаетесь решить, здесь, правда? Это пахнет как плохой дизайн.

(я не вижу комментария поле, возможно, из-за отсутствия повторения --- поэтому опубликовано как ответ.)

1 голос
/ 16 декабря 2009
SELECT '1,2,7,9,13,3,10,4,21,6,12' REGEXP '(^2$)|(^2,)|(,2,)|(,2$)' AS matches

Возможно, он хорошо настроен, но должен работать.

P.S. Пожалуйста, не используйте тему, чтобы написать весь вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...