mannaro
@mannaro
Умею профессионально гуглить

Выборка по регулярному выражению?

Здравствуйте! Подскажите пожалуйста: у меня в таблице БД данные хранятся таким образом:

id | name | items
1 | test | '0, 2, 3'
2 | test2 | '1, 4'
3 | test3 | '5'


И мне надо сделать выборку (`id` - int, `name` - varchar, `items` - varchar), допустим, по наличию в items числа 4.

т.е. ВЫБРАТЬ `name` ГДЕ `items` СОДЕРЖИТ '4'; должно выдать test2 и т.п.


Извиняюсь, за такой сумбурный вопрос, но все же.
  • Вопрос задан
  • 3409 просмотров
Решения вопроса 1
KonstRuctor
@KonstRuctor
программист, дизайнер, фотограф, журналист
В данном случае удобнее сделать связанную таблицу ordered_items, это сильно развяжет руки при развитии проекта.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@larikov
select name from your_table where find_in_set('4', items) > 0
Ответ написан
raskumandrin
@raskumandrin
Добавить в начале и конце строки «, », после чего использовать like:
select * from your_table where concat( ', ' , items , ', ' ) like ', 4, '
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы