"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso atribuir variáveis ​​de usuário a partir de resultados de consultas no MySQL sem usar consultas aninhadas?

Como posso atribuir variáveis ​​de usuário a partir de resultados de consultas no MySQL sem usar consultas aninhadas?

Publicado em 2024-11-06
Navegar:963

How Can I Assign User Variables from Query Results in MySQL without Using Nested Queries?

Atribuição de variáveis ​​do usuário a partir do resultado da consulta no MySQL

Histórico e objetivo

Atribuir variáveis ​​definidas pelo usuário com base nos resultados da consulta aprimora os recursos de manipulação do banco de dados. Este artigo explora um método para conseguir isso no MySQL sem recorrer a consultas aninhadas.

Sintaxe de atribuição de variável do usuário

Ao contrário da crença popular, a atribuição de variável do usuário pode ser integrada diretamente nas consultas. O operador de atribuição para instruções SET é = ou :=. No entanto, := deve ser usado dentro de outras instruções, pois = é reservado para comparações.

Exemplo de consulta

Para ilustrar esta técnica, vamos supor que USER e GROUP sejam únicos. A sequência de consulta a seguir mostra a funcionalidade:

SET @user := 123456;
SELECT @group := `group` FROM USER WHERE user = @user;
SELECT * FROM USER WHERE `group` = @group;

Dados e resultados de exemplo

Usando uma tabela de exemplo com os seguintes dados:

CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);

A consulta produz o seguinte resultado:

 -------- ------- 
| user   | group |
 -------- ------- 
| 123456 |     5 |
| 111111 |     5 |
 -------- ------- 

Abordagem Alternativa

Como alternativa, a seguinte sintaxe pode ser empregada:

SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3