Order by non funziona

  • Creatore Discussione Creatore Discussione Tommy03
  • Data di inizio Data di inizio

Tommy03

Utente Attivo
6 Giu 2018
614
58
28
21
Vicenza
Salve, ho questa semplice query che ignora completamente l'order by del campo when (è un INT(11), contiene gli orari in formato timestamp delle notifiche)
PHP:
SELECT * FROM notification WHERE userid='$usid' ORDER BY 'when' DESC
Infatti il risultato che ottengo è sempre questo (io invece vorrei vedere le notifiche dall'ultima arrivata alla prima):

orderby.png

Dove sbaglio?
Grazie
 
Ciao marino51, grazie per la risposta.
In effetti all'inizio aveva scritto senza apici ma mi dà un errore di sintassi, precisamente questo:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'when DESC
LIMIT 0, 25' at line 1
E di conseguenza provandolo direttamente nel codice php non restituisce niente
 
Scusa l'insistenza, questo che vol dire?
In tutti i linguaggi di programmazione (associamoci anche sql), ci sono parole che vengono interpretate con significati diversi,
esempio semplice, abbiamo una colonna di una tabella sql che contiene una descrizione, per nostro gusto, la nominiamo DESC
ora scriviamo una select con un ORDER BY DESC,
ovvero chiediamo di ordinare in modo discendente, che cosa ? manca il nome della colonna
cioé il nome DESC non va usato per nominare una colonna

nel tuo caso WHEN viene usato nel costrutto CASE esempio,
CASE WHEN '07:00:00' between ora_ingresso and ora_uscita THEN 1 ELSE 0 END ) AS presenza
anche in questo caso, il nome WHEN non va usato per nominare una colonna (come anche CASE)

per tentare di risolvere, prova ad usare un alias, ovvero prova a scrivere
SELECT ...., WHEN AS newname, ......
GROUP BY newname
ma non sono sicuro che funzioni, se non dovesse funzionare, sei costretto a cambiare il nome della colonna
(cosa che io farei senza aspettare, salvo la curiosità dell'alias)

DESC, WHEN ed altre sono parole "riservate" che impediscono al sistema di interpretarle in modo corretto se usate ... liberamente

spero di essere stato meno ermetico
 
Ultima modifica:
  • Like
Reactions: Tommy03
Grazie mille!! Non avrei immaginato che ci fosse un problema del genere, la tua spiegazione è stata chiarissima. Credo che per sicurezza cambierò direttamente il nome della colonna.
Grazie
 

Discussioni simili