Boa noite pessoal!
Estou com uma dúvida pra criar uma função no MySQL. Seguinte:
Preciso passar 2 parâmetros para uma função. Essa função vai fazer um select em uma tabela ‘x’. Essa tabela ‘x’ possui os mesmos 2 campos que eu vou passar como parâmetro da função. Eu preciso fazer um cálculo com os parâmetros e os campos dos registro da tabela ‘x’. Então cada linha que o select retornar eu preciso fazer um determinado cálculo. Essa função deve retornar os registros da tabela ‘x’, mas dependendo do cálculo alguns registros não devem ser retornados. Então se o select retornar 1000 registros a função irá fazer os cálculos e irá retornar apenas 20, por exemplo. Eu quero filtrar o resultado da consulta pra não ter que fazer isso na aplicação.
Isso é possível? Eu preciso tratar registro por registro que for retornado na consulta.
Desde já agradeço.
[]'s
Você não consegue fazer isso com um select + where?
Posta aí a estrutura da sua tabela e o seu cálculo certinho pra ficar mais fácil de te ajudar…
Att,
Olá Schoker,
Complementando a sugestão do colega BrunoPeresREAL, você poderá fazer o que deseja através de uma stored procedure.
Abraços.
_ _
Fabiano Abreu
Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL
Digamos que você tenha uma tabela com as colunas X e Y, que são numéricas, e você gostaria de fazer um select que seria mais ou menos assim:
SELECT * FROM TABELA WHERE SQRT (X^2 + Y^2) > 1.0
ou seja, a raiz quadrada da soma dos quadrados dessas colunas é maior que um. (Na verdade, acho até que o MySQL tenha uma função raiz quadrada, mas para a explicação abaixo vamos supor que isso não exista).
Digamos que você saiba a linguagem C, que é algo necessário para criar “functions” (leia http://dev.mysql.com/doc/refman/5.5/en/adding-udf.html ).
Você gostaria de escrever uma função DIST que permitisse você escrever a query acima como:
SELECT * FROM TABELA WHERE DIST (X, Y) > 1.0