PDA

View Full Version : Mi aiutate con una query MYSQL ?


skp
09-05-2007, 15:53
ho una tabella così

ID | categoria
==============
1 | 2
2 | 2
3 | 2
4 | 3
5 | 4
6 | 4
7 | 4
8 | 2
9 | 2
10 | 8
11 | 2
12 | 2

vorrei estrarre gli ID con categoria = 2 in ordine di ID crescenti relativamente ad ogni sottogruppo a partire dall'ultimo. In pratica:

estraggo categoria = 2: (FACILE)

1
2
3
.
.
.
.
8
9
.
11
12

l'ordine che vorrei :

11
12

8
9

1
2
3

Si può fare ?

simoneart
09-05-2007, 16:01
Non ho capito bene la tua domanda, cmq un

...ORDER BY ID DESC

non va bene?

skp
09-05-2007, 16:06
Non ho capito bene la tua domanda, cmq un

...ORDER BY ID DESC

non va bene?

ID DESC mi farebbe 12 11 9 8 3 2 1 mentre io necessito di 11 12 8 9 1 2 3

skp
09-05-2007, 17:01
Devo aiutarmi con programmazione esterna (PHP) o esiste un modo diretto sql ?

newuser
09-05-2007, 19:16
Premesso che non sono un esperto in SQL non credo possa esistere un metodo per definire e ricercare la sequenzialità o meno di insiemi di record all'interno della tabella.

Per impostazione nei database relazionali la posizione del record non ha importanza e non può essere rilevata con SQL.

Nel tuo caso l'unica possibilità diretta è aggiungere un campo ulteriore alla tabella che definisca il sottogruppo di appartenenza.

Altrimenti devi processare i record dopo averli estratti con un linguaggio diverso (php, starbasic, visual basic ecc.)

franksisca
09-05-2007, 22:52
Devo aiutarmi con programmazione esterna (PHP) o esiste un modo diretto sql ?

;) imho

lombardp
10-05-2007, 09:50
Come ti ha detto newuser, il problema è che nella tabella che hai descritto non c'è un criterio per definire quello che tu hai nominato con SOTTOGRUPPO. Un criterio potrebbe essere un ulteriore campo che identifica il sottogruppo con un numero identificativo.

Se invece definisci SOTTOGRUPPO come gruppo di record con categoria=2 separati da record con categoria diversa, allora secondo me devi aiutarti con la programmazione PHP e scandire tutta la tabella.

skp
10-05-2007, 15:57
Come ti ha detto newuser, il problema è che nella tabella che hai descritto non c'è un criterio per definire quello che tu hai nominato con SOTTOGRUPPO. Un criterio potrebbe essere un ulteriore campo che identifica il sottogruppo con un numero identificativo.

Se invece definisci SOTTOGRUPPO come gruppo di record con categoria=2 separati da record con categoria diversa, allora secondo me devi aiutarti con la programmazione PHP e scandire tutta la tabella.

grazie 1000 a tutti per le risposte :) . In effetti non c'era soluzione immediata al problema e ho risolto cambiando totalmente il modo in cui *inserivo* i dati nel db in modo da trovarmeli subito nell ' ordine giusto.

ciao