Saltar al contenido

¿Cómo declarar una variable en MySQL?

Nuestros mejores investigadores agotaron sus depósitos de café, por su búsqueda todo el tiempo por la respuesta, hasta que Ramón encontró el arreglo en Bitbucket y hoy la compartimos con nosotros.

Solución:

Existen principalmente tres tipos de variables en MySQL:

  1. Variables definidas por el usuario (con el prefijo @):

    Puede acceder a cualquier variable definida por el usuario sin declararla ni inicializarla. Si hace referencia a una variable que no ha sido inicializada, tiene un valor de NULL y un tipo de string.

    SELECT @var_any_var_name
    

    Puede inicializar una variable usando SET o SELECT declaración:

    SET @start = 1, @finish = 10;    
    

    o

    SELECT @start := 1, @finish := 10;
    
    SELECT * FROM places WHERE place BETWEEN @start AND @finish;
    

    A las variables de usuario se les puede asignar un valor de un conjunto limitado de tipos de datos: entero, decimal, punto flotante, binario o no binario stringo valor NULL.

    Las variables definidas por el usuario son específicas de la sesión. Es decir, una variable de usuario definida por un cliente no puede ser vista ni utilizada por otros clientes.

    Se pueden utilizar en SELECT consultas utilizando técnicas avanzadas de variables de usuario de MySQL.

  2. Variables locales (sin prefix) :

    Las variables locales deben declararse utilizando DECLARE antes de acceder a ella.

    Se pueden usar como variables locales y los parámetros de entrada dentro de un procedimiento almacenado:

    DELIMITER //
    
    CREATE PROCEDURE sp_test(var1 INT) 
    BEGIN   
        DECLARE start  INT unsigned DEFAULT 1;  
        DECLARE finish INT unsigned DEFAULT 10;
    
        SELECT  var1, start, finish;
    
        SELECT * FROM places WHERE place BETWEEN start AND finish; 
    END; //
    
    DELIMITER ;
    
    CALL sp_test(5);
    

    Si el DEFAULT falta la cláusula, el valor inicial es NULL.

    El alcance de una variable local es el BEGIN ... END bloque dentro del cual se declara.

  3. Variables del sistema del servidor (con el prefijo @@):

    El servidor MySQL mantiene muchas variables del sistema configuradas con un valor predeterminado. pueden ser de tipo GLOBAL, SESSION o BOTH.

    Las variables globales afectan la operación general del servidor, mientras que las variables de sesión afectan su operación para conexiones de clientes individuales.

    Para ver los valores actuales utilizados por un servidor en ejecución, utilice el SHOW VARIABLES declaración o SELECT @@var_name.

    SHOW VARIABLES LIKE '%wait_timeout%';
    
    SELECT @@sort_buffer_size;
    

    Se pueden configurar al iniciar el servidor mediante opciones en la línea de comandos o en un archivo de opciones. La mayoría de ellos se pueden cambiar dinámicamente mientras el servidor se está ejecutando usando SET GLOBAL o SET SESSION:

    -- Syntax to Set value to a Global variable:
    SET GLOBAL sort_buffer_size=1000000;
    SET @@global.sort_buffer_size=1000000;
    
    -- Syntax to Set value to a Session variable:
    SET sort_buffer_size=1000000;
    SET SESSION sort_buffer_size=1000000;
    SET @@sort_buffer_size=1000000;
    SET @@local.sort_buffer_size=10000;
    

COLOCAR

SET @var_name = value 

O

SET @var := value

ambos operadores = y := son aceptados


SELECCIONE

SELECT col1, @var_name := col2 from tb_name WHERE "conditon";

si se encuentran varios conjuntos de registros, solo se conserva el último valor en col2 (anular);

SELECT col1, col2 INTO @var_name, col3 FROM .....

en este caso, el resultado de select no contiene valores col2


Ex ambos métodos utilizados

— TRIGGER_BEFORE_INSERT — establecer un valor de columna a partir de cálculos

...
SELECT count(*) INTO @NR FROM a_table WHERE a_condition;
SET NEW.ord_col =  IFNULL( @NR, 0 ) + 1;
...

Utilizar colocar o Seleccione

SET @counter := 100;
SELECT @variable_name := value;

ejemplo :

SELECT @price := MAX(product.price)
FROM product 

Sección de Reseñas y Valoraciones

Nos puedes corroborar nuestra tarea ejecutando un comentario y dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *