Поиск нескольких категорий, разделенных запятыми в поле MySQL TEXT - PullRequest
0 голосов
/ 07 августа 2011

Так вот, что я пытаюсь сделать, но не могу понять.Сайт, который я делаю, позволяет человеку выбрать несколько категорий, таких как «Бокс», «Потеря веса», «Выносливость» и т. Д. И т. Д. Они разделены запятыми и находятся в одном поле ТЕКСТ в таблице участников.,

Теперь, что я пытаюсь сделать, это выяснить, как я могу искать несколько категорий одновременно (например, выносливость и бокс) и найти всех участников, у которых есть один или оба из них в своем поле категории.

Я думал о чем-то вроде profile_specialising IN ('Cat1', 'Cat2', 'Cat3') ... но это не работает, когда поле profile_specialising имеет более 1 категории / поля в БД.

Так что я могу искать по нескольким категориям в поле с несколькими категориями.

1 Ответ

1 голос
/ 07 августа 2011

Я действительно предлагаю вам поместить категории в отдельную таблицу и связать их с участниками с третьей таблицей category_to_members. Но если вы хотите оставить все как есть, гипотетический запрос будет выглядеть следующим образом.

SELECT * FROM members WHERE category LIKE '%cat%' OR category LIKE '%dog%'

Есть присущие этому проблемы - LIKE '%cat%' будет соответствовать "catatonic", а также "cat". Попытка решить эту проблему путем добавления запятых в LIKE - больше проблем, чем стоит, ИМХО.

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