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!

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

4 comentários sobre “Como usar variáveis no MySQL”

  1. Boa Noite Elias, estou com uma dúvida, teria como eu armazenar uma variavel dentro de um campo longtext?

    Exemplo:

    Campo = Conteudo
    conteudo = ‘TEXTO PRE-FORMATADO #VARIAVEL ‘

  2. Olá Elias, veja se pode me ajudar:
    Tenho uma tabela de colaboradores identificados pelo ID; nesta tabela tenho o campo `colaboradorSexo` onde em cada linha tem marcado se é feminino ou masculino.
    Preciso fazer uma consulta de formulário com select que retorne o sexo específico daquele colaborador específico, e que quando abra a caixa select não venha os 200 sexos já cadastrados.

  3. Excellent site. A lot of helpful info here. I’m sending it to
    several pals ans additionally sharing in delicious. And certainly, thank you in your effort!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *