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

    unire risultati di una tabella ordinati in maniera differente

    probabilmente mi sto perdendo in un bicchier d'acqua ma...
    vorrei unire in un solo array due tipi di risultati provenienti dalla stessa tabella ma selezionati e ordinati in modo diverso..tipo:
    select where id=1 e lo aggiungo all'array risultati
    select where cat=4 order by date e lo aggiungo all'array risultati
    select where name=pippo order by name e lo aggiungo all'array

    non so se mi sono spiegato :master:

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    select * from tabella where (id = 1 or cat = 4 or name = "Pippo") order by name,date;

    Per l'ordinamento puoi specificare tutti i campi che vuoi e ovviamente la priorità sarà via via decrescente.

    P.S. Se hai un campo di nome date ti conviene rinominarlo perchè è una parola riservata di mysql e può generare errori particolari.

  3. #3
    Originariamente inviato da nicola75ss
    select * from tabella where (id = 1 or cat = 4 or name = "Pippo") order by name,date;

    Per l'ordinamento puoi specificare tutti i campi che vuoi e ovviamente la priorità sarà via via decrescente.

    P.S. Se hai un campo di nome date ti conviene rinominarlo perchè è una parola riservata di mysql e può generare errori particolari.
    ciao grazie dell'esauriente risposta
    ma cosi non fa in modo che mi ordini prima tutti per nome e poi all'interno se hanno date differenti li ordini per data tra i nomi uguali?

  4. #4
    Originariamente inviato da Quinn
    ciao grazie dell'esauriente risposta
    ma cosi non fa in modo che mi ordini prima tutti per nome e poi all'interno se hanno date differenti li ordini per data tra i nomi uguali?
    mi spiego meglio
    io vorrei prendere con una sola select un ID a scelta e metterlo in cima al mio array e successivamente inserire nell'array i tutti gli altri risultati ordinati per data...

  5. #5

  6. #6

  7. #7
    (SELECT *,UNIX_TIMESTAMP(insered) as insered FROM post WHERE isop<>'1' AND id='1' LIMIT 1) UNION (SELECT *,UNIX_TIMESTAMP(insered) as insered FROM post WHERE isop<>'1' AND cat='1' ORDER BY insered DESC LIMIT 5);

    posto che i nomi dei campi sono corretti...una query del genere perchè non dovrebbe funzionare?

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.