选择值在列中的行,其中多个数据用逗号分隔

时间:2013-10-15 17:46:14

标签: php mysql multiple-value

我的MySQL数据库中有这种情况: enter image description here

我需要选择行,其中tag来自url参数(GET),带有php-mysql查询:

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

如何获取此查询?我想我需要创建一个数组...但我不知道怎么做。提前谢谢!

3 个答案:

答案 0 :(得分:4)

您可以使用LIKE / FIND_IN_SET执行此操作,但绝对不应该这样做。

相反,请考虑更改架构并添加字典表以保留所有标记和连接表,以保持标记和项之间的所有连接。

答案 1 :(得分: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') );

答案 2 :(得分:0)

SELECT * FROM `table` WHERE FIND_IN_SET(`Tags`, '$tag') > 0;