mysql's Where cláusula y limitaciones de alias de columna
usando alias de columna en MySQL's donde la cláusula a menudo conduce al error "#1054 - columna desconocida en 'in/all/cualquier subquery'". Este artículo explica por qué y ofrece enfoques alternativos.
mysql requiere nombres de columnas en donde las cláusulas sean directamente de la estructura de la tabla o se derivan mediante notación de puntos. Los alias de columna, nombres temporales asignados durante el procesamiento de la consulta, no se reconocen.
La documentación mysql lo prohíbe explícitamente. La razón es la orden de ejecución de la consulta: se evalúan los alias de los alias de Where Cláusula antes de . Por lo tanto, el uso de un alias en la cláusula WHERE da como resultado un comportamiento indefinido.
Para superar esto, emplee la cláusula de tener. Esta cláusula está diseñada para filtrar filas después de la agrupación y la agregación, lo que hace que sea apropiada al filtrarse en columnas calculadas (como las creadas con alias). En situaciones en las que se necesita un alias para filtrar, el uso del alias en la cláusula para tener proporciona una solución viable.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3