2

我的 MySQL 数据库中有这种情况: 在此处输入图像描述

我需要使用 php-mysql 查询选择标签来自 url 参数(GET)的行:

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

我怎样才能获得这个查询?我认为我需要创建一个数组......但我不知道该怎么做。提前致谢!

4

3 回答 3

4

你可以使用LIKE/FIND_IN_SET但你绝对不应该这样做。

而是考虑更改架构并添加字典表以保留所有标签并连接表以保持标签和项目之间的所有连接。

于 2013-10-15T17:48:03.090 回答
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') );
于 2013-10-15T17:53:20.153 回答
0
SELECT * FROM `table` WHERE FIND_IN_SET(`Tags`, '$tag') > 0;
于 2013-10-15T17:51:37.697 回答