@korvin2

Как получить строку, содержащую тег?

Имеется столбец тегов, разделенный запятыми типа: "зелен, большой, сильный". Знаю, что это не лучший способ хранения тегов, изменю это позже, но выполнить запрос по поиску строки, содержащей определенный тег, нужно прямо сейчас. Например, в первой записи такие теги : "зелен, большой, сильный". Во второй : "зеленый, большой, сильный". Когда использую
"SELECT * FROM tablename WHERE tags LIKE '%зелен%'"

возвращаются обе записи (из-за зеленый), но нужна только первая.
Возможно нужно использовать не LIKE, а что-то другое. Пробовал через IN, но не получалось
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@korvin2 Автор вопроса
Этот запрос работает : select * from `table` where (tags LIKE '%tag,%' OR tags LIKE 'tag' OR tags LIKE '%, tag')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
вы можете попробовать регулярные выражения вместо LIKE, но они медленные. лучше измените структуру. на это нужно минут 10, если по всему проекту еще не расползлось
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы