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....
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....
questa è dura eh... !!!
upparello!!!![]()
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
![]()
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...
Non so se tramite una query sia possibile ottenere direttamente ciò che vuoi.![]()
Infatti... però si cercano volontari per risolvere questo enigma!
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.