Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Funzioni e Query SELECT

    Salve, volevo sapere se rea possibile utilizzare all'interno di una query SELECT una funzione scritta da me. Ad esempio, mentre č possibile scrivere:
    Codice PHP:
    $query "SELECT *, campo1 + campo2 AS valoreCalcolato FROM table ORDER BY valoreCalcolato ASC"
    dove campo1 e campo2 sono i valori contenuti nella tabella table; č possibile, invece, scrivere:
    Codice PHP:
    function somma($a$b){
    $c $a $b;
    return 
    $c;
    }
    $query "SELECT *, somma(campo1, campo2) AS valoreCalcolato FROM table ORDER BY valoreCalcolato ASC"
    ?
    Premetto che in questo modo ho giā provato, ma non funziona ma mi chiedevo se ci fosse un modo che mi permettesse di utilizzare funzioni con calcoli complessi all'interno della query.
    Capisco che posso inserire il calcolo complesso dopo la query una volta estratto i valori del campo1 e campo2, ma ho la necessitā di ordinare il risultato della query in base al valore di valoreCalcolato
    Grazie mille!!
    Ultima modifica di giannidef; 22-11-2021 a 18:30

  2. #2
    di quale db stiamo parlando?
    ARTRIPE

  3. #3

    RISOLTO

    @optime: il DB č MySQL
    Problema risolto con STORED FUNCTION:
    per chi fosse interessato:

    NELLA TAB SQL del database di MySQL, creo la STORED FUNCTION:
    codice:
    DELIMITER $$
    CREATE FUNCTION esempioFnc (val1 int, val2 int)
    RETURNS INT
    DETERMINISTIC
    BEGIN
    DECLARE val3 int; 
    SET val3 = val1 + val2;
    RETURN (val3);
    END$$
    DELIMITER ;
    nella pagina php scrivo la mia query:
    Codice PHP:
    "SELECT *, esempioFnc(primoValore, secondoValore) As terzoValore FROM funEsterna ORDER BY terzoValore ASC"
    Grazie a tutti.
    Ultima modifica di giannidef; 23-11-2021 a 17:19

  4. #4
    molto bene; se posso dare un suggerimento, nomina le tue funzioni sempre con lo stesso prefisso (es.: fnEsempio, fnCalcolaGiorni, ecc.) cosė le riconosci al volo in una query anche complessa
    ARTRIPE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.