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

    [MySQL] Ordinare risultati in base al maggiore valore di 3 campi

    qual'è la sintassi giusta per ordinare una select mysql, in base al numero più elevato presente confrontando tre campi (tutti INT o tutti DATE)?!

    SELECT * FROM tabella ORDER BY MAX(campo_1, campo_2);

    'sta roba qui sopra non funzia....

  2. #2
    questa è dura eh... !!!

    upparello!!!

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    // estrai tutti i campi che ti servono dalla query
    $i 0;
    while (
    $row mysql_fetch_assoc($query) ) {
    foreach (
    $row as $key => $value) {
        
    $ret[$i][$key] = $value;
    // al posto di val1,val2,val3 metti i nomi dei tuoi tre campi
        
    $max max($row['val1'],$row['val2'],$row['val3']);
        
    $ret[$i]['max'] = $max;
        }
    $i++;
    }
    // Dentro il for ho creato un array con tutti i campi della query a cui ho aggiunto  
    //la chiave e il valore max relativi al maggiore dei 3 valori di ogni record

    echo '<pre>';
    print_r($ret);
    echo 
    '</pre>';

    // Riordino per il valore massimo in ordine decrescente

    foreach($ret as $val)
    $num[] = $val['max'];
    array_multisort($num,SORT_NUMERIC,SORT_DESC,$ret);
    echo 
    '<pre>';
    print_r($ret);
    echo 
    '</pre>';

    // Adesso hai tutto ciò che ti serve 

  4. #4
    Incredibile Nicola, ti ringrazio!
    Il fatto è che però in realtà questa query è da passare ad un db mssql richiamato da scripting asp... scusate, ma non mi era stato specificato.

    Per cui ho proprio bisogno di creare questa query e non soluzioni varie al di fuori di essa.

    Mi sta prendendo il dubbio che non sia fattibile...

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non so se tramite una query sia possibile ottenere direttamente ciò che vuoi.

  6. #6
    Infatti... però si cercano volontari per risolvere questo enigma!

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da nicola75ss
    Non so se tramite una query sia possibile ottenere direttamente ciò che vuoi.

    select greatest(val1,val2,val3) as maggiore from tabella


    in mssql non so ma ci sarà qualcosa simile.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.