Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择值位于具有多个数据分隔逗号的列中的行_Php_Mysql_Multiple Value - Fatal编程技术网

Php 选择值位于具有多个数据分隔逗号的列中的行

Php 选择值位于具有多个数据分隔逗号的列中的行,php,mysql,multiple-value,Php,Mysql,Multiple Value,我的MySQL数据库中有这样的场景: 我需要使用php mysql查询从url参数(GET)中选择标记所在的行: $tag = $_GET['tag']; // example $tag = 1 // now I need select rows where in tags colums is value 1. 如何获取此查询?我想我需要创建一个数组。。。但是我不知道怎么做。提前谢谢 您可以使用像/在集合中查找,但您绝对不应该这样做 而应考虑更改模式和添加字典表,以保持所有标记和连接表保持

我的MySQL数据库中有这样的场景:

我需要使用php mysql查询从url参数(GET)中选择标记所在的行:

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

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

您可以使用
/
在集合中查找,但您绝对不应该这样做


而应考虑更改模式和添加字典表,以保持所有标记和连接表保持标记和项之间的所有连接。

< P>不要这样做——它会给每个查询带来麻烦,直到修复为止。

SELECT * FROM `table` WHERE FIND_IN_SET(`Tags`, '$tag') > 0;
相反,制作一个标记表,并使用多对多关系将团队与标记关联起来

比如说

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') );

最好的选择是规范化数据库;否则,规范化我的数据库意味着什么?你能举个例子吗?我的意思是使用一个团队标签表,包括一个团队id和一个标签id列,每个标签对应一行与你的团队相关-根据D Mac的回答,并将
团队id
标签id
作为主键。是的,没错,@ElonThan。抢手货