Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: SELECT

  1. #1

    SELECT

    vorrei estrarre un tot di righe con ordine decrescente i ncui però compaia sempre una riga ocn un certo valore

    ecco cos'ho scritto, ma funziona

    Codice PHP:
    $query = ("SELECT id_O,news,alt,CC FROM news WHERE CC =1 AND CC =0 ORDER BY id_O DESC LIMIT 6"); 
    vorrei ceh ci fosse sempre la riga con il valore CC= 1
    e poi tutte le altre 5 in ordine decrescente

    coem si può fare
    grazie

  2. #2
    quello che hai scritto è in contraddizione.
    Vui le righe dove il valore del campo CC è sia uguale a ZERO che uguale a UNO. E' una contraddizione.

    Cioè, vuoi che in ogni riga ci sia un campo CC sempre uguale a 1?

    SELECT id_O,news,alt,'1' AS CC FROM news WHERE 1 ORDER BY id_O DESC LIMIT 6


    bo, non capisco

  3. #3
    solo una riga ha il valore 1 e tutte le altre 0
    però se do un limit è possibile che quel record non rientri in quelle prime 6 righe
    allora gli dico che volgio sia gli 0 che la riga con l'uno

  4. #4
    SELECT id_O,news,alt,CC FROM news WHERE 1 ORDER BY CC,id_O DESC LIMIT 6

    Puoi fare un order di più colonne.
    In questo caso mette in prima posizione chi ha il CC più alto (che sarà chi lo ha impostato a UNO).
    Seguono gli altri che lo hanno impostato a zero ma sono ordinati secondo id_O

  5. #5
    PROVATO
    NON FUNGE
    MI ESTRAI 6 RIGHR COME RICHIESTO AM QUELLO CON cc =0 NON VI è
    SE PROVO AD AUMENTARE IL LIMIT A 7
    MI ESTRAE UN ALTRA NEWS CON cc = 0

  6. #6
    ("SELECT id_O,news,alt,CC FROM news ORDER BY CC DESC, id_O DESC LIMIT 6");

    così funziona
    grazie
    non avevo mai pensato a dare diversi ordini

  7. #7
    e nel caso volessi estrarre 8 righe che si distinguono solo per un campo del record?

    ho provato con distinct ma controlla che vi sia unicità in tutti i campi
    non va bene

  8. #8
    ho risolto raggruppando i record con il campo in comune
    il problema è che non mi mostra l'ultimo inserito ma il primo
    coem si fa a prendere l'ultimo inserito di ogni gruppo
    ho provato ocn DES ASC
    pure con MAX (id autoincrement della tabella)
    nada
    nada
    coem si fa?

  9. #9
    DISTINCT e GROUP BY prendono il primo record che soddisfa la richiesta e tanti saluti.... potresti giocare un po' con HAVING...

    ma se ti serve sempre l'ultimo inserito fai prima a fare una tabella temporanea, la popoli con i dati ordinati in modo DESC e su quella ci fai la query con GROUP BY o DISTINCT... Non pensare sia pesante da gestire, mysql lo fa tutte le volte che serve gia' per conto suo e nessuno se ne accorge.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    una tabella temporanea?
    mi stai dicendo che dovrei crearmi al volo una tabella?

    grazie per avermi risposto prima di tutto

    forse non l'ho capita bene questa soluzione
    non ho capito al differenza tra un group by tipo order by id DESC nella tabella permanente
    e la stessa select in una tabella permantente
    perhcè è questo che mi suggerisci?

    nell'attesa di una tua risposta mi riguardo nel mio manualone l'having

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