"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 puedo asignar variables de usuario a partir de resultados de consultas en MySQL sin utilizar consultas anidadas?

¿Cómo puedo asignar variables de usuario a partir de resultados de consultas en MySQL sin utilizar consultas anidadas?

Publicado el 2024-11-06
Navegar:921

How Can I Assign User Variables from Query Results in MySQL without Using Nested Queries?

Asignación de variables de usuario a partir del resultado de la consulta en MySQL

Antecedentes y objetivo

La asignación de variables definidas por el usuario en función de los resultados de la consulta mejora las capacidades de manipulación de la base de datos. Este artículo explora un método para lograr esto en MySQL sin recurrir a consultas anidadas.

Sintaxis de asignación de variables de usuario

Contrariamente a la creencia popular, la asignación de variables de usuario se puede integrar directamente en las consultas. El operador de asignación para declaraciones SET es = o :=. Sin embargo, := debe usarse dentro de otras declaraciones, ya que = está reservado para comparaciones.

Ejemplo de consulta

Para ilustrar esta técnica, supongamos que USUARIO y GRUPO son únicos. La siguiente secuencia de consulta muestra la funcionalidad:

SET @user := 123456;
SELECT @group := `group` FROM USER WHERE user = @user;
SELECT * FROM USER WHERE `group` = @group;

Datos y resultados de muestra

Usando una tabla de muestra con los siguientes datos:

CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);

La consulta arroja el siguiente resultado:

 -------- ------- 
| user   | group |
 -------- ------- 
| 123456 |     5 |
| 111111 |     5 |
 -------- ------- 

Enfoque alternativo

Como alternativa, se puede emplear la siguiente sintaxis:

SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;
Ú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