Ci sono due tipi di risultati che voglio tornare:query SQL per selezionare minimo di 10 risultati
- notifiche non letti
- leggere le notifiche
Se ci sono> 10 notifiche non lette disponibili I vuoi selezionare quanti ce ne sono
Se ci sono < = 10, voglio selezionare tutti (diciamo che c'erano 7) le notifiche non lette e 3 'filler' leggere no tifications. Come posso realizzare questo?
Se avessi voluto selezionare solo tutte le notifiche non lette mia domanda sarebbe:
SELECT * FROM notifications WHERE read = 0
Se avessi voluto selezionare solo tutte le notifiche letto la mia domanda sarebbe:
SELECT * FROM notifications WHERE read = 1
Puoi spiegare cosa sta succedendo qui a piccolo? In particolare r <= 10 e (SELECT @rownum: = 0) r – maxhud
Grazie per la spiegazione! Bella risposta. – maxhud
Tutte le righe sono numerate, a partire dal non letto fino alla lettura. Se non letto> = 10, vengono selezionati tutti i non letti. Se non letto <10, la numerazione continua nelle righe lette, ma vogliamo solo le righe numerate <= 10 – codingbiz