我有一个包含复杂列的查询,我想将此列结果用于另一列,例如:
SELECT ( /* Complex query */ ) as myValue, if( myValue > 10, "OK" , "" ) from table;
但他的查询返回错误:
Error Code: 1054. Unknown column 'myValue' in 'field list
如何重用已计算的字段?
我有一个包含复杂列的查询,我想将此列结果用于另一列,例如:
SELECT ( /* Complex query */ ) as myValue, if( myValue > 10, "OK" , "" ) from table;
但他的查询返回错误:
Error Code: 1054. Unknown column 'myValue' in 'field list
如何重用已计算的字段?
您可以使用用户定义的变量。
也许服务器需要初步的变量定义。如果是这样,
文档没有指定输出值计算的顺序,但实际上它总是与它们的写入顺序相匹配。
我的偏好是使用子查询,总结外部查询的结果:
另一种方法是在 IF () 语句中重复复杂查询,而不是使用
myvalue
真的不在乎这种方法。查询(或计算)越复杂,随着时间的推移,这种替代方案就越不受欢迎。
我刚刚了解到这在 MySQL 中有效(我使用的是 8.0.21 版)。
因此,您可以尝试