Php 选择值位于具有多个数据分隔逗号的列中的行
我的MySQL数据库中有这样的场景: 我需要使用php mysql查询从url参数(GET)中选择标记所在的行: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. 如何获取此查询?我想我需要创建一个数组。。。但是我不知道怎么做。提前谢谢 您可以使用像/在集合中查找,但您绝对不应该这样做 而应考虑更改模式和添加字典表,以保持所有标记和连接表保持
$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。抢手货