MySQL如下定义Constants & Constant Tables
here:
具有零行或仅具有一行的表
受WHERE条件限制的表表达式,包含表主键的所有列或表的任何唯一键的所有列(提供的形式为column = constant的表达式)唯一列也定义为NOT NULL)。
示例1
FROM Table0 ... WHERE column1=5 AND column2=7 ...
Table0
定义中包含
... PRIMARY KEY (column1,column2)
示例2
FROM Table1 ... WHERE unique_not_null_column=5
Table1
定义中包含
... unique_not_null_column INT NOT NULL UNIQUE
MySQL表示它将预先评估一个常量表,并将该值“插入”到查询中(如果有一个,但如果没有,则将其解析为IMPOSSIBLE WHERE
)。
我的问题:
如果还有其他条件以及与constant
或and
串联在一起的or
的“必需”条件怎么办? MySQL是否也将以下查询视为常量?
从我的直觉来看,Constant
对谓词进行or
编辑时会受到伤害,而对and
对谓词进行编辑不会受到伤害。但据我所知,任何地方都没有官方的记录。
FROM Table0 ... WHERE column1=5 AND column2=7 AND column_not_special='lorem'
FROM Table1 ... WHERE unique_not_null_column=5 OR some_random=3