Mysql如何通过2条条件选择行,仅在其余列= null的地方显示行?

时间:2018-12-15 12:19:15

标签: mysql

我有一个表,称为项目配置,它由ItemID,颜色,重量,高度组成。

如果我从color ='red'和Weight ='100'的ItemConfigurations中选择*,我得到的行会比我想要的多。

例如:

row 1: item 234, color red and weight 100 AND HEIGHT = 10
row 2: item 234, color red and weight 100
row 3: item 234, color red and weight 100 AND HEIGHT = 20 AND fabric = cloth

我只想要第二行(红色/ 100),但是由于其他行也符合这些条件,因此它们也在结果中。

当人们添加更多诸如fabric = cloth之类的东西时,配置(=列)的数量会及时增加。

所以我不能只说从ItemConfigurations中选择*,其中color ='red'和Weight ='100'以及HEIGHT = null,因为一旦添加了结构,我还必须在where子句中添加fabric = null

关于如何仅获得我想要的行(第2行,其中颜色=红色,权重= 100)并且此表中的列数不断增加的建议?

我考虑过添加“检查”列,并在插入/更新表中的一行并将该检查放入我的选择中时,将所有值的总和插入列中。但这并不意味着要采取正确的方法。 (所有值都是规范化的整数btw)

尽管我使用php,但我想在mysql查询中执行上述操作。希望有人知道如何解决这个问题。

谢谢您的建议!

0 个答案:

没有答案