Dan*_*tos 4 mysql computed-column
我有一个带有复杂列的查询,我想在另一列中使用此列结果,例如:
SELECT ( /* Complex query */ ) as myValue, if( myValue > 10, "OK" , "" ) from table;
Run Code Online (Sandbox Code Playgroud)
但他的查询返回一个错误:
Error Code: 1054. Unknown column 'myValue' in 'field list
Run Code Online (Sandbox Code Playgroud)
如何重用已计算的字段?
Aki*_*ina 10
您可以使用用户定义的变量。
SELECT @temp := ( /* Complex query */ ) AS myValue,
IF ( @temp > 10, "OK" , "" )
FROM table;
Run Code Online (Sandbox Code Playgroud)
也许服务器需要初步的变量定义。如果是这样的话,
SELECT @temp := ( /* Complex query */ ) AS myValue,
IF ( @temp > 10, "OK" , "" )
FROM table, (SELECT @temp := 0) dummy;
Run Code Online (Sandbox Code Playgroud)
文档没有指定输出值计算的顺序,但实际上它总是与它们的写入顺序匹配。