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

    [MySql] Order By - due criteri

    Ciao a tutti ho un piccolo problema che per voi sicuramente sarà una cosa stupida...
    Ho una tabella "Articoli"
    id_art
    titolo
    contenuto
    data

    vorrei fare una query che mi estragga i contenuti in base a 2 criteri ovvero:
    - titolo
    - data

    però c'è da considerare che il titolo non è obbligatorio quindi alcune volte potrebbe essere vuoto... se io metto semplicemente

    ORDER BY titolo ASC, data DESC

    mi mette ovviamente prima quelli col titolo vuoto e poi il resto ma io voglio il contrario ovvero prima quelli con il titolo e poi quelli che non hanno il titolo ordinati per data....

    Come posso modificare la query?
    Grazie anticipatamente a tutti!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285
    Conviene che, quando il campo titolo sia vuoto, venga settato a null. Questo lo fai durante la insert e non so se l'hai già fatto....
    Poi fai due query. Con la prima selezioni tutte quelle con il titolo non null (where titolo is not null order by titolo asc, data desc) e poi quelli "where titolo is null order by data desc"...
    Questo perché credo che lo spazio venga considerato come primo carattere...

  3. #3
    Mmm....volevo evitare di fare 2 query..... credevo ci fosse il modo per fare tutta con 1... Comunque si è settato su null il campo..

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285
    allora fai due query

  5. #5

  6. #6
    Certo che si può usare una union
    codice:
    (SELECT * FROM Articoli WHERE titolo is not null ORDER BY titolo ASC, data DESC) 
    union (SELECT * FROM Articoli WHERE titolo is null ORDER BY titolo ASC, data DESC)

  7. #7
    No vabbeh lo so che si può, ma dietro una union ci deve sempre essere un'adeguata ponderazione di vantaggi, svantaggi, rischi eccetera, in questo dico "forse"


  8. #8
    Per la query che serve fare a me la union è veramente perfetta!

    Non ci avevo proprio pensato


    Grazie mille per i consigli ragazzi!

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