Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031

    [MYSQL] Non considerare nella limit alcuni records

    Tabella:

    codice:
    Id  Articolo  Flag  Prezzo
    1     aaa       0      32
    2     bbb       0      22
    3     ccc       1      54
    4     ddd       0       8
    5     eee       0      77
    6     fff       1      11
    7     ggg       1      25
    8     hhh       0      87
    Attraverso questa query:
    codice:
    SELECT * FROM Tabella ORDER BY FLAG DESC, PREZZO ASC
    estraggo dapprima gli articoli con flag 1 (devono infatti stare sempre in testa al recordset) poi tutti quelli che seguono ordinandoli per prezzo. Fin qui nessun problema. Il problema arriva quando mi si rende necessario l'utilizzo della LIMIT per la paginazione.

    Infatti la limit NON DEVE considerare i record con flag 1 ma solamente i successivi. Ecco che con una limit di due dovrebbe restituirmi i primi tre con flag 1 e poi, grazie alla limit restituirmene due con flag 0. Invece mi restituisce i primi due record con flag 1...

    Esiste un modo per risolvere senza dover ricorrere a due query separate unite da un union all? ovviamente niente soluzioni del tipo "fai una limit 2+3 perchè il numero di record con flag 1 non è mai noto a priori...
    Grazie.

  2. #2
    spero per te di essere smentito ma non è possiblie
    ciao

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    niente soluzioni del tipo "fai una limit 2+3 perchè il numero di record con flag 1 non è mai noto a priori...
    E se fosse noto potresti usare questa soluzione?
    Prima di fare la query ne fai 1 altra dove conti il numero di record con flag 1.

    LIMIT $quanti+(($pagina_corrente-1)*$quanti_per_pagina), $quanti_per_pagina

    Non conoscendo il contesto è l'unica cosa che mi viene in mente.

    Ciao

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.