我的MySQL数据库中有这种情况:
我需要选择行,其中tag来自url参数(GET),带有php-mysql查询:
$tag = $_GET['tag'];
// example $tag = 1
// now I need select rows where in tags colums is value 1.
如何获取此查询?我想我需要创建一个数组...但我不知道怎么做。提前谢谢!
答案 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;