Como usar variáveis no MySQL

O uso de variáveis no MySQL permite a adição de inúmeras possibilidades de realizar operações, das mais simples às mais complexas. Acompanhe este post, para ver como manipular as variáveis no cliente MySQL — com muitos exemplos práticos.

Como usar variáveis no MySQL

Alguns pontos interessantes sobre o assunto:

  • As variáveis são definidas com uma instrução SET
  • O MySQL é insensível à caixa, neste caso – ou seja, idcliente e IdCliEnTE são a mesma coisa
  • As variáveis devem ser precedidas de um sinal ‘@’ (arroba)
  • Uma vez que variáveis de sessão, ao desconectar do servidor (QUIT), elas se perdem automaticamente

Exemplos de uso de variáveis

Vamos usar a seguinte tabela nos exemplos que seguem. Trata-se de uma tabela curta, com apenas 3 registros.

+-----------+-----------------------------+-------------------------+
| idCliente | nomeCliente                 | emailCliente            |
+-----------+-----------------------------+-------------------------+
|         1 | Carlos Alberto da Nobrega   | cacalberto@yahoo.com.br |
|         2 | Carlos Augustus de Oliveira | carlaugus@yahoo.com.br  |
|         3 | Maria Sulamita Nogueira     | msnogueira2@gmail.com   |
+-----------+-----------------------------+-------------------------+

Agora, vamos atribuir o valor 3 à variável @numero. Depois, vamos pedir para exibir os dados de todos os registros cujos campos idCliente sejam iguais a 3. Veja:

mysql> SET @numero = 3;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM clientes WHERE idCliente = @numero;
+-----------+-------------------------+-----------------------+
| idCliente | nomeCliente             | emailCliente          |
+-----------+-------------------------+-----------------------+
|         3 | Maria Sulamita Nogueira | msnogueira2@gmail.com |
+-----------+-------------------------+-----------------------+
1 row in set (0.00 sec)

No próximo exemplo, vamos armazenar na variável @contagem o resultado da contagem de todos os registros da tabela clientes (que são 3):

mysql> SET @contagem := (SELECT COUNT(*) FROM clientes);
Query OK, 0 rows affected (0.00 sec)

mysql> select @contagem;
+-----------+
| @contagem |
+-----------+
|         3 |
+-----------+
1 row in set (0.00 sec)

Como último exemplo, vamos armazenar na variável @email o email do cliente de id = 3. Veja como:

SELECT emailCliente INTO @email FROM clientes WHERE idCliente = 3 LIMIT 1;

Começamos por armazenar na variável @email todos os emailCliente, da tabela clientes cujo idCliente seja igual a 3. No nosso caso, apenas um dos registros satisfaz esta condição.
Depois pedimos para exibir o conteúdo da variável @email, com o comando SELECT. A imagem, abaixo, mostra os resultados que eu obtive.

mysql guardar uma query em variável
Clique para ampliar

Se quiser ver mais exemplos de como realizar operações aritméticas dentro das tabelas, com ou sem o uso das variáveis, leia o srtigo Como usar o MySQL como calculadora!