假设您有一个包含许多属性字段的表,例如:
id datetime q a c d . . . (etc)
其中 q、a、c、d 等表示不定数量的 int 字段,其名称是生成的(也在运行时创建)
在某些特定字段为特定数字而所有其他字段均为 0 的约束下,如何进行选择?
(例如)a=1,c=5,其他都为0?
<小时/>更新:
我想我要求的是是否有一些“整体”功能或者我可以直接“WHERE ALL OTHERS = 0”(或类似的东西)的功能。
规范化的问题是,即使在连接之后,我仍然必须检查特定的非零值以及所有其他字段(或规范化字段)是否为 0。
<小时/>具体应用:
化学成分表
id name C Fe Cl H . . . (etc - fields are added when new compound insert contains elements not listed)
示例行:
name = Hydrochloric acid C = 0 Fe = 0 Cl = 1 H = 1 . . . (everything else = 0)
简单的 SELECT * FROM table WHERE H=1 AND Cl = 1 的问题是它还包括其他情况,例如 C Cl H(即使它有 C=1 ,因为 Cl 和 H 也都是 1,所以选择它)
这就是为什么我试图弄清楚如何在所有其他字段均为 0 的情况下选择它!
最佳答案
这不是一个现实情况。您永远不会拥有无限数量的 int 字段,因为您不能在没有 ALTER 语句的情况下修改表(仅在运行时)。至少,你不应该这样做。
关于MySQL - 选择所有其他列 = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650798/