Me gustaría SELECCIONAR un solo valor en una variable. Intenté seguir:
DECLARE myvar INT(4);
- devuelve inmediatamente algún error de sintaxis.
SELECT myvalue
FROM mytable
WHERE anothervalue = 1;
- devuelve un solo entero
SELECT myvalue
INTO myvar
FROM mytable
WHERE anothervalue = 1;
- no funciona, también probé @myvar
¿Es posible utilizar DECLARE fuera de los procedimientos o funciones almacenados?
Tal vez simplemente no entiendo el concepto de variables de usuario ... Solo intenté:
SELECT myvalue INTO @var FROM `mytable` WHERE uid = 1;
SELECT @var;
... que funcionó como se suponía. Pero si ejecuto cada consulta a la vez, obtengo @var NULL.
fuente
:=
quedará obsoleta. ¡Así que prefiere usar elSELECT ... INTO
!Al final, un procedimiento almacenado fue la solución a mi problema. Esto es lo que ayudó:
fuente
Estas respuestas no cubren muy bien MÚLTIPLES variables.
Al realizar la asignación en línea en un procedimiento almacenado, esos resultados TAMBIÉN se envían de vuelta en el conjunto de resultados. Eso puede resultar confuso. Para usar la sintaxis SELECT ... INTO con múltiples variables, debe:
SELECT debe devolver solo 1 fila, por lo tanto, LIMIT 1, aunque eso no siempre es necesario.
fuente
También puede usar SET en lugar de DECLARE
fuente
Según los documentos de MySQL, DECLARE funciona solo al comienzo de un bloque BEGIN ... END como en un programa almacenado.
fuente
syntax error, missing ;
error.No es necesario DECLARAR una variable en MySQL. El tipo de variable se determina automáticamente cuando se le asigna un valor por primera vez. Su tipo puede ser uno de los siguientes: entero, decimal, punto flotante, cadena binaria o no binaria, o valor NULL. Consulte la documentación de Variables definidas por el usuario para obtener más información:
http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
Puede usar SELECT ... INTO para asignar columnas a una variable:
http://dev.mysql.com/doc/refman/5.0/en/select-into-statement.html
Ejemplo:
fuente
Vale la pena señalar que a pesar de que puede tener
SELECT INTO
variables globales como:SELECT ... INTO @XYZ ...
NO puede usar
FETCH INTO
variables globales como:FETCH ... INTO @XYZ
Parece que no es un error . Espero que sea de ayuda para alguien ...
fuente
Estoy usando la versión 6 (MySQL Workbench Community (GPL) para Windows versión 6.0.9 revisión 11421 compilación 1170) en Windows Vista. No tengo ningún problema con las siguientes opciones. Probablemente lo arreglaron ya que estos tipos tuvieron los problemas hace tres años.
Todas las opciones anteriores me dan un resultado correcto.
fuente
Para aquellos que tienen estos problemas en este momento, solo intente poner un alias para la tabla, este debería ser el truco, por ejemplo:
Funcionó para mí.
Salud.
fuente
Tal vez pierda el símbolo @ antes de su valor, así
select 'test' INTO @myValue
;fuente
SELECCIONE c1, c2, c3, ... INTO @ v1, @ v2, @ v3, ... FROM table_name WHERE condición;
fuente