我有一个表,称为项目配置,它由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查询中执行上述操作。希望有人知道如何解决这个问题。
谢谢您的建议!