"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo recuperar los 5 elementos principales de cada categoría en MySQL y evitar el error "La subconsulta devuelve más de 1 fila"?

¿Cómo recuperar los 5 elementos principales de cada categoría en MySQL y evitar el error "La subconsulta devuelve más de 1 fila"?

Publicado el 2024-11-20
Navegar:607

How to Retrieve the Top 5 Items from Each Category in MySQL While Avoiding the

Recuperando los 5 elementos principales de cada categoría en MySQL

Encontrando el error "La subconsulta devuelve más de 1 fila" al intentar recuperar el ¿Los cinco elementos principales del menú para cada categoría de menú? La solución reside en emplear variables de efectos secundarios.

Analicemos el enfoque revisado:

En la subconsulta, introducimos las variables de efectos secundarios @r y @g usando la notación @ de SQL. Estas variables se utilizan para realizar un seguimiento de la membresía del grupo e incrementar la clasificación dentro de cada grupo.

  1. @g:=null: inicializa @g a NULL, lo que indica que estamos iniciando un nuevo grupo.
  2. @r:=0 - Inicializa @r a 0, lo que significa el comienzo de un nuevo rango.
  3. La cláusula WHERE en la subconsulta (donde m.menuid = s.menuid) garantiza que s y m sean alineado según el ID del menú.
  4. @r:=case when @g=m.profilename then @r 1 else 1 end - Esta expresión de caso incrementa @r en 1 si m.profilename es el mismo que el actual grupo (@g). De lo contrario, restablece @r a 1, lo que indica el inicio de un nuevo grupo.
  5. @g:=m.profilename - Actualiza @g con el nombre del perfil del grupo actual, lo que nos permite realizar un seguimiento de las filas posteriores que pertenecen a este grupo.
  6. La consulta principal recupera el nombre del perfil y el nombre del alias de la tabla de subconsulta X.
  7. La condición final WHERE r

Al implementar este enfoque, puede obtener eficientemente los resultados deseados sin el error "La subconsulta devuelve más de 1 fila".

Último tutorial Más>

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