Здравствуйте.
Подскажите пожалуйста как решить проблему, а то все не как не пойму как сделать.
Есть таблица с игровыми серверами
CREATE TABLE `servers` (
`server_id` mediumint(5) unsigned NOT NULL,
`server_game` varchar(100) DEFAULT NULL,
`game_mod` text (сюда пишутся ид модов, моды в другой таблице)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
В ней есть столбцы интересующие нас: server_game и game_mod
На сайте есть поиск по игровым серверам.
Человек может выбрать игру любую, за это отвечает колонка server_game(тут находится тип игры)
В колонку server_game_mod помещаются моды сервера, но модов может быть и 50 и 100 (в таблице пишется ид мода)
Понятно что можно сделать WHERE server_game='ТИП ИГРЫ' AND game_mod='Моды игры'
Все бы понятно, но вот вопрос, столбец то один для модов так ? А модов очень много и если даже искать через LIKE, то могут повторяться название в модах и будут выдаваться поиском не нужные сервера.
Наглядно:
Человек ищет сервер minecraft, и выбрал моды "с PvP". (Все моды хранятся в другой таблице и в game_mod пишутся только id мода.
Запрос получается следующий
SELECT * FROM `servers` WHERE `server_game`='minecraft' AND `game_mod` LIKE '%6%'
Но это выдаст нам кучу других серверов, с учетом 16 ид .
Так же я понимаю, что я могу создать 100 столбцов в таблице, для каждого столбца свой мод, и просто уже в запросе писать чтобы выбирать по определеным столбцам моды, но хочется как то в одном столбце все
Как мне лучше реализовать поиск?