Curiosità: se la UNION già include DISTINCT, perché fare una UNION ALL con la clausola "WHERE premi <> 'più di 40 premi'"?
- Home
- madre.nord
- Post
madre.nord
@madre.nord
Post creati da madre.nord
-
RE: Order by ALFANUMERICO strano
-
RE: Order by ALFANUMERICO strano
Alcune migliaia di record. Ogni record è composto da centinaia di campi.
@Texv: ho fatto in tempo a leggere la tua soluzione prima che la eliminassi:
SELECT * FROM tabella WHERE premi="più di 40 premi" UNION SELECT * FROM tabella ORDER BY premi + 0 DESC
Sembrava interessante. Se è vero che con UNION posso unire due query per crearne una sola che visualizzi i due elenchi di risultati di file, penso abbia senso. Ma effettivamente la seconda SELECT conterrebbe doppioni della prima.
Tuttavia, che ne pensate di questa modifica?
SELECT * FROM tabella WHERE premi="più di 40 premi" UNION SELECT * FROM tabella WHERE premi!="più di 40 premi" ORDER BY premi + 0 DESC
-
Order by ALFANUMERICO strano
Ciao,
la situazione è questa:
ho un database (non modificabile) in cui nel campo "premi" ci sono vari valori espressi come "text":- il valore "nessun premio";
- il valore numerico da 20 a 40 (che sono i premi);
- il valore "più di 40 premi".
Con PHP sto ordinando i risultati per numero di premi.
Aggiungendo "ORDER BY premi + 0 DESC" ho scoperto che posso ordinare in senso alfanumerico, ovvero prima mi considera i premi da 40 a 20, ordinando in senso descrescente, quindi mi elenca i "nessuna età" a seguire. E fin qui andrebbe bene.
Il problema è che dovrei far vedere anche i "più di 40" PRIMA dei valori "da 40 a 20", e non so come fare a livello di sintassi.
Adesso il sistema me li pone ovviamente alla fine dell'elenco, mischiati con i "nessun premio".
Come posso fare?Nota: se avessi potuto modificare il database avrei semplicemente simulato "più di 40" con il numero 41, così da ordinarmelo senza problemi.
Attendo l'aiuto di qualche esperto PHP-SQL, grazie.
A presto!