如何使用Mysql查询1列中的多个值

如何使用Mysql查询1列中的多个值,mysql,Mysql,我有如下桌布: id | fabric_texture 123 | 70:cotton,20:polyeste,10:cmere 我应该如何创建一个mysql select以按百分比cotton、Polieste.进行搜索。。 我尝试在集合中查找,但无法使用百分比值 更新: 搜索织物的棉含量超过50%,聚酯含量低于20% 重要事项:棉、聚酯。。是动态的我建议编辑您的表,为每种可能的结构类型设置一列,然后为百分比设置与之关联的int,然后您可以查询 "select * from fabrics

我有如下桌布:

id | fabric_texture
123 | 70:cotton,20:polyeste,10:cmere

我应该如何创建一个mysql select以按百分比cotton、Polieste.进行搜索。。 我尝试在集合中查找,但无法使用百分比值

更新: 搜索织物的棉含量超过50%,聚酯含量低于20%


重要事项:棉、聚酯。。是动态的

我建议编辑您的表,为每种可能的结构类型设置一列,然后为百分比设置与之关联的int,然后您可以查询

"select * from fabrics where cotton = 70"
或者在您的评论示例中

"select * from fabrics where cotton <= 50"
你的新桌子很漂亮

_id | cotton = INT | poly = INT | cmere = INT | etc = INT |
表示值0-100(0-100%)的整数

从你的例子来看,这将是

123 | 70 | 20 | 10 | 0 | 0 | .....

我建议编辑您的表,为每种可能的结构类型设置一列,然后为百分比设置与之关联的和int,然后您可以查询

"select * from fabrics where cotton = 70"
或者在您的评论示例中

"select * from fabrics where cotton <= 50"
你的新桌子很漂亮

_id | cotton = INT | poly = INT | cmere = INT | etc = INT |
表示值0-100(0-100%)的整数

从你的例子来看,这将是

123 | 70 | 20 | 10 | 0 | 0 | .....

您应该将
fabric\u texture
移出到一个新表中,其中所有内容都在其自己的列中

CREATE TABLE fabric_texture (
    item_id INT,
    fabric VARCHAR(32),
    percentage INT,
    UNIQUE KEY (item_id, fabric)
);
然后您可以执行查询:

SELECT t1.item_id
FROM fabric_texture AS t1
JOIN fabric_texture AS t2 ON t1.item_id = t2.item_id
WHERE t1.fabric = 'cotton' AND t1.percentage > 50
AND t2.fabric = 'polyester' AND t2.percentage < 20
选择t1.item\u id
从织物纹理中选择t1
将织物_纹理连接为t1上的t2。项目_id=t2。项目_id
其中t1.fabric=‘棉’和t1.fabric>50
t2.织物=聚酯纤维,t2.百分比<20
要获取有关该项目的其他详细信息,可以将其加入到主项目表中


对于
cotton
Polety
等,与原始表中的列相比,此模式的优势在于不需要将结构名称硬编码到表结构中。如果出现新的织物,您可以为这些产品添加新行。

您应该将
fabric\u texture
移到一个新表中,其中所有内容都在其自己的列中

CREATE TABLE fabric_texture (
    item_id INT,
    fabric VARCHAR(32),
    percentage INT,
    UNIQUE KEY (item_id, fabric)
);
然后您可以执行查询:

SELECT t1.item_id
FROM fabric_texture AS t1
JOIN fabric_texture AS t2 ON t1.item_id = t2.item_id
WHERE t1.fabric = 'cotton' AND t1.percentage > 50
AND t2.fabric = 'polyester' AND t2.percentage < 20
选择t1.item\u id
从织物纹理中选择t1
将织物_纹理连接为t1上的t2。项目_id=t2。项目_id
其中t1.fabric=‘棉’和t1.fabric>50
t2.织物=聚酯纤维,t2.百分比<20
要获取有关该项目的其他详细信息,可以将其加入到主项目表中



对于
cotton
Polety
等,与原始表中的列相比,此模式的优势在于不需要将结构名称硬编码到表结构中。如果出现新面料,您可以为这些产品添加新行。

您想通过
棉质
聚酯纤维
进行搜索,还是需要专门搜索百分比值?如果您编辑了您的帖子,以提供更多的样本行以及要返回的样本查询行集,这会有所帮助。您可以提供百分比值的示例吗?我希望将搜索设置为:大于50%或更低。。等等,看标准化-但不是cookie提出的那种这是可怕的数据库结构。它之所以可怕是因为像这样的查询非常困难。您应该有一个列为
id | fabric | percentage
的表。您想通过
cotton
polyeste
进行搜索,还是需要专门搜索百分比值?如果您编辑了您的帖子,以提供更多的样本行以及要返回的样本查询行集,这会有所帮助。您可以提供百分比值的示例吗?我希望将搜索设置为:大于50%或更低。。等等,看标准化-但不是cookie提出的那种这是可怕的数据库结构。它之所以可怕是因为像这样的查询非常困难。你应该有一个列
id | fabric | percentage
的表格。是的,但问题是这个列存储:70:cotton,20:polyeste,10:cmerewell对于每一列来说,你有一个cotton | polety | cmere | spandex | linnen等列,每个列都设置为0-100,如果你想找到一个混合,你就这样做“从织物纹理中选择*,其中棉=70,涤纶=20,棉=10“织物的纹理是柱状物,不是我知道的表格,而是它的例子,我想添加更多的类型和动态:染料,但问题是这个柱状物商店:70:棉,20:聚酯,10:cmerewell每列说你有一个棉,聚酯,氨纶,林宁等列,每个列设置为0-100,然后如果你想找到一个组合,你就这样做。”“从织物纹理中选择*,其中棉=70,涤纶=20,棉=10“fabric_texture是Colu,不是我知道的表格,而是它的示例,我想添加更多类型和动态:DYou可能希望键是
项目id
织物
,因为看起来两种不同织物类型的百分比相等。哦,等等,您可能只是输入了一个错误,因为您的列是
fabric
percentage
,没有
fabric\u percentage
。是的,这是一个错误,但你是对的,我不需要密钥中的百分比。你可能希望密钥是
item\u id
fabric
,因为两种不同的结构类型的百分比似乎相等。哦,等等,您可能只是输入了一个错误,因为您的列是
fabric
percentage
,并且没有
fabric\u percentage
。是的,这是一个错误,但您是对的,我不需要键中的百分比。