Procedimentos armazenados condicionais do MySQL IF - CASE

Índice
Procedimentos armazenados condicionais IF
Vamos criar um banco de dados e uma tabela com os comentários que os usuários fazem, sejam eles artigos, postagens ou o que quisermos.
CREATE TABLE `comments` (
`commentid` int (11) DEFAULT NULL,
data `data` DEFAULT NULL,
`userid` int (50) DEFAULT NULL,
texto de `comentário`,
CHAVE PRIMÁRIA (`ocorrênciaid`)
) MOTOR = CHARSET PADRÃO MyISAM = latin1;
Vamos criar um stored procedure que conta a quantidade de comentários que um usuário deixou e retorna o nível em que esse usuário se encontra, tomando como referência para o exemplo.
Especialista se você fez mais de 5000 comentários
Avançado se você comentou entre 4999 e 1000 vezes
Moderador se você comentou entre 999 e 500 vezes
editor se você comentou entre 499 e 100 vezes
Criamos o procedimento armazenado e ele terá dois parâmetros, um dos quais será a entrada do id ou número do usuário cuja variável é p_usuario e a outra saída que será o nível com a variável p_level.

Explicamos o procedimento armazenado que o chamamos, assumimos um ID de usuário = 112
Nível de usuário CALL (112)
Ele seleciona e conta o número de comentários desse usuário e armazena-o na variável total, então a estrutura if atribuirá o nível à variável p_level e retornará o valor.
<? // Preparamos uma consulta do php
$ result = $ mysqli-> query ("CALL userlevel (112)");
$ row = $ result-> fetch_assoc ();
echo 'Nível:'. $ row ['p_level']; ?> var13 ->

Procedimentos armazenados condicionais CASE
A operação é muito parecida com a anterior, só que a condicional é CASE e neste exemplo obtemos o custo de frete ou sobretaxa de acordo com a localização de um cliente.

Assumiremos um cityid = 2 e chamaremos o procedimento armazenado p
Custo de envio CALL (2)
<? // Preparamos uma consulta do php
$ result = $ mysqli-> query ("CALL de custo de envio (2)");
$ row = $ result-> fetch_assoc ();
echo 'Sobretaxa para envio'. $ row ['p_recargo']; ?> var13 ->

Também dentro das possibilidades oferecidas pelas estruturas condicionais, podemos usar as estruturas if ou case para realizar várias ações com um único procedimento armazenado
Criaremos, por exemplo, um procedimento armazenado para gerenciar produtos para os quais, enviando um parâmetro, podemos determinar que ação ou tarefa realizaremos.

Podemos ver que no procedimento de produtos temos um parâmetro chamado p_accion, então atribuímos se a ação será salvar um novo produto ou modificá-lo no banco de dados
Exemplo para inserir um novo produto
<? // Preparamos uma consulta do php
$ result = $ mysqli-> query ("CALL produtos (10, 'Celular', '100,00', 'novo')");
echo 'O produto foi registrado'; ?> var13 ->

Exemplo para inserir uma edição ou modificar um produto
<? // Preparamos uma consulta do php
$ result = $ mysqli-> query ("CALL produtos (10, 'telefone celular MXC3', '120,00', 'editar')");
echo 'O produto foi modificado'; ?> var13 ->

Este método é muito útil para agrupar tarefas conhecidas como CRUD, ou seja, criar, ler, editar e deletar dados e realizar atualizações e buscas, tudo ordenado em um mesmo arquivo, facilitando assim a manutenção e a possibilidade de escalar o banco de dados se necessário.
Além disso, permite do ponto de vista da análise funcional ter mais clareza sobre as regras de negócio da aplicação.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave