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