У меня есть таблица продуктов, которая содержит поле под названием «категории», чтобы сохранить идентификаторы категорий, связанных с продуктами, как значения, разделенные запятыми. Я использую regexp для поиска продуктов из категории.
Предположим, что есть запись, содержащая 4,24,1,31
мое выражение есть,
..WHERE categories REGEXP ',?4,?'
но это возвращает оба продукта категории 4
и 24
Мне просто нужно отобразить только категорию 4
.
Я что-то упускаю?
использование
WHERE categories REGEXP "(^|,)4(,|$)"
Это соответствует 4
если они находятся в запятой или в начале / конце строки.
В вашей текущей версии обе запятые полностью необязательны, поэтому 4
в 24
матчах.