Выберите строку, где значение находится в столбце с несколькими запятыми, разделенными данными

У меня есть этот сценарий в моей базе данных MySQL: введите здесь описание изображения

Мне нужно выбрать строку, где тег находится из параметра URL (GET) с запросом php-mysql:

$tag = $_GET['tag'];
// example $tag = 1
// now I need select rows where in tags colums is value 1. 

Как я могу получить этот запрос? Я думаю, что мне нужно создать массив... но я не знаю, как это сделать. заранее спасибо!


person Vincenzo Lo Palo    schedule 15.10.2013    source источник
comment
Лучший вариант для вас — нормализовать базу данных; в противном случае FIND_IN_SET()   -  person Mark Baker    schedule 15.10.2013
comment
что вы имеете в виду для нормализации моей базы данных? Можете ли вы сделать пример, пожалуйста?   -  person Vincenzo Lo Palo    schedule 15.10.2013
comment
Я имею в виду использование таблицы team_tags, содержащей столбцы team_id и tag_id, с одной строкой для каждого тега, связанного с вашей командой, - согласно ответу D Mac   -  person Mark Baker    schedule 15.10.2013


Ответы (2)


Не делайте этого таким образом - это будет создавать вам проблемы с каждым запросом, пока вы его не исправите.

Вместо этого создайте таблицу тегов и используйте отношение «многие ко многим», чтобы связать команды с тегами.

Например

CREATE TABLE tag (
    id int not null auto_increment primary key,
    name varchar(100),
    description varchar(255) );

CREATE TABLE teamtag (
    team_id int,
    tag_id int,
    CONSTRAINT 'team_fk' FOREIGN KEY (team_id) REFERENCES team ('id'),
    CONSTRAINT 'tag_fk' FOREIGN KEY (tag_id) REFERENCES tag ('id') );
person D Mac    schedule 15.10.2013
comment
И сделайте team_id с tag_id в качестве первичного ключа. - person Elon Than; 15.10.2013
comment
Да, именно, @ElonThan. Хороший улов. - person D Mac; 15.10.2013

Вы можете сделать это, используя LIKE/FIND_IN_SET, но определенно не должны.

Вместо этого рассмотрите возможность изменения схемы и добавления таблицы словарей, чтобы сохранить все теги, и таблицы соединений, чтобы сохранить все связи между тегами и элементами.

person Elon Than    schedule 15.10.2013