Tenga en cuenta que para SET, ya sea =o :=se puede utilizar como operador de asignación. Sin embargo, dentro de otras declaraciones, el operador de asignación debe ser :=y no =porque =se trata como un operador de comparación en las declaraciones que no son SET.
ACTUALIZAR:
Además de los comentarios a continuación, también puede hacer lo siguiente:
Por cierto, ¿podría suprimir el resultado de la primera instrucción (como su única asignación variable) y solo mostrar el resultado de la segunda consulta?
Avada Kedavra
3
@Avada: Actualicé mi respuesta con una alternativa, que no genera un resultado para la asignación de variable.
Esto resulta Subquery returns more than 1 rowpara mí
timbroder
1
@timbroder Simplemente agregue LIMIT 1 a la consulta. De todos modos, sugerí una edición para corregir eso.
Youkko
12
Primero echemos un vistazo a cómo podemos definir una variable en mysql
Para definir una variable en mysql, debe comenzar con '@' como @ {variable_name} y este '{variable_name}', podemos reemplazarlo con nuestro nombre de variable.
Ahora, cómo asignar un valor en una variable en mysql. Para esto tenemos muchas formas de hacerlo
Usando la palabra clave 'SET'.
Ejemplo:
mysql >SET@a =1;
Sin usar la palabra clave 'SET' y usar ': ='.
Ejemplo:-
mysql >@a:=1;
Mediante el uso de la declaración 'SELECCIONAR'.
Ejemplo:-
mysql >select1into@a;
Aquí @a es una variable definida por el usuario y 1 se asignará en @a.
Ahora, cómo obtener o seleccionar el valor de @ {variable_name}.
podemos usar la instrucción select como
Ejemplo:
mysql >select@a;
mostrará la salida y mostrará el valor de @a.
Ahora cómo asignar un valor de una tabla en una variable.
Para esto podemos usar dos afirmaciones como: -
1)
@a :=(select emp_name from employee where emp_id =1);
select emp_name into@a from employee where emp_id =1;
Siempre tenga cuidado, emp_name debe devolver un valor único; de lo contrario, arrojará un error en este tipo de declaraciones.
select grop into @group from user limit 1
.Simplemente agregue paréntesis alrededor de la consulta:
fuente
Subquery returns more than 1 row
para míPrimero echemos un vistazo a cómo podemos definir una variable en mysql
Para definir una variable en mysql, debe comenzar con '@' como @ {variable_name} y este '{variable_name}', podemos reemplazarlo con nuestro nombre de variable.
Ahora, cómo asignar un valor en una variable en mysql. Para esto tenemos muchas formas de hacerlo
Ejemplo:
Ejemplo:-
Ejemplo:-
Aquí @a es una variable definida por el usuario y 1 se asignará en @a.
Ahora, cómo obtener o seleccionar el valor de @ {variable_name}.
podemos usar la instrucción select como
Ejemplo:
mostrará la salida y mostrará el valor de @a.
Ahora cómo asignar un valor de una tabla en una variable.
Para esto podemos usar dos afirmaciones como: -
1)
Siempre tenga cuidado, emp_name debe devolver un valor único; de lo contrario, arrojará un error en este tipo de declaraciones.
consulte esto: - http://www.easysolutionweb.com/sql-pl-sql/how-to-assign-a-value-in-a-variable-in-mysql
fuente
Use esta forma para que el resultado no se muestre mientras se ejecuta el procedimiento almacenado.
La consulta:
fuente