- У меня есть таблица MySQL, которая содержит вопросы для пользователей.
- Каждый пользователь имеет категорию, назначенную им.
- Каждый вопрос может быть нацелен на одну или несколько категорий пользователей.
- Категория вопроса находится в столбце в таблице вопросов, а - не в отдельной таблице.
- По вопросам, которые нацелены на несколько категорий пользователей, каждая категория будет отделена от персонажа, таких как
|
Я пытаюсь получить все вопросы из таблицы, где категория конкретного пользователя совпадает строки, которая находится в столбце категории для вопроса.Соответствующие слова в строке
Я столкнулся пару вопросов:
$string^
не будет работать, потому что строка я пытаюсь сравнить с может быть что-то вроде Retail|Field Based
Я не могу использовать WHERE category LIKE "%'.$category.'%"
потому, что некоторые категории поделиться словами. Например: Retail
и Retail Roadshow
Если Retail
была категория, она будет также соответствовать на Retail Roadshow
Я на немного потери о том, как сделать это с текущей структурой базы данных. Я не планирую изменять структуру базы данных, но, возможно, придется, если я не смогу получить рабочий ответ о том, как он работает в настоящее время.
Ваш инстинкт верен, таблица MySQL не должна содержать каких-либо разделительных данных, каждое значение должно существовать в отдельной строке в другой таблице е. Следуйте этому принципу, и многие проблемы, которые вы на грани столкновения, исчезнут. –
Если вы хотите сохранить трубопровод '' ', то вы можете сделать это' $ sql = "select * from your_table, где category = '$ category' или category like '$ category |%' или category LIKE '% | $ category |% 'или category like'% | $ category '";' – MonkeyZeus
Что происходит, когда категория пользователя действительно имеет канал в названии категории? – MonkeyZeus