Ordinamento con una query SQL-- MYSQL

mercoledì 21 aprile 2010 - 13.09

fasol Profilo | Junior Member

Ciao a tutti ho un problema che non riesco proprio a risolvere, ho già cercato con google ma non ho trovato nulla al riguardo.
ora espongo il problema in modo da essere piu chiaro.

Io ho una query di questo tipo,

SELECT * FROM nome_tabella WHERE products_id IN (valore 1, valore 5, valore 6, valore 9, valore 7, valore 3, valore 8, valore 2, .... )

ovviamente il valore è numerico e l'ordine di questi valori viene dato da un procedura chiamata in precedenza.

eseguo la query senza problemi e senza errori, ma quando vado a leggere i dati dal mio recorset i dati mi appaiono ordinati in modo differente rispetto all'ordine dato nella clausola IN
uso mysql qualcuno sa aiutarmi a preservare l'ordine dato????

Ringrazio in anticipo tutti quanti si interessano al mio problema
ciaociao.



meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....

lbenaglia Profilo | Guru

>Io ho una query di questo tipo,
>
>SELECT * FROM nome_tabella WHERE products_id IN (valore 1, valore
>5, valore 6, valore 9, valore 7, valore 3, valore 8, valore 2,
>.... )
>
>ovviamente il valore è numerico e l'ordine di questi valori viene
>dato da un procedura chiamata in precedenza.
L'ordine degli argomenti è del tutto ininfluente in quanto la clausola IN verrà tradotta con n operatori OR, 1 per ogni valorre.

>eseguo la query senza problemi e senza errori, ma quando vado
>a leggere i dati dal mio recorset i dati mi appaiono ordinati
>in modo differente rispetto all'ordine dato nella clausola IN
>uso mysql qualcuno sa aiutarmi a preservare l'ordine dato????
L'unico modo che ti garantisce un ordinamento è quello di utilizzare la clausola ORDER BY, ma la vedo grigia ottenere quello che chiedi (a meno di inefficienti arzigogoli).

>Ringrazio in anticipo tutti quanti si interessano al mio problema
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fasol Profilo | Junior Member

grazie mille dunque non mi resta che prendere i valori uno alla volta e far eseguira la query per ogni valore che ho messo nella clausala in e salvare i valori risultanti in una struttura dati grazie mille ancora rimango ancora un po in attesa di eventuali chiarimenti o altre soluzioni più "eleganti"


meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5