Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [SQL] Ordine

    Salve,

    la seguente interrogazione :
    codice:
    SELECT * FROM tabella where id in (3,6,9,5)
    ordina in automatico i risultati visualizzandoli nel seguente ordine :
    codice:
    3
    5
    6
    9
    io vorrei che invece visualizzi i risultati nello stesso ordine in cui l'inserisco all'interno delle parentesi tonde , ovvero :
    codice:
    3
    6
    9
    5
    come posso fare?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    l'ordine di visualizzazione dei dati interni ad un tabella di un database se non specificato con i costrutti order by etc .. non dipende necessariamente dall'ordine di inserimento dei singoli record o da come hai costruito la select ma a come è stato implementato il database e come organizza internamente i singoli record (questo indipendentemente da una eventuale indicizzazione).
    Per quello che ne soi io non c'è quindi maniera semplice di ottenere quello che desideri.
    ciao
    sergio

  3. #3
    potresti spezzare la select in 4 ... unendole insieme
    tipo


    Codice PHP:
    SELECT FROM tabella where id=3
    union
    SELECT 
    FROM tabella where id=6
    union
    SELECT 
    FROM tabella where id=9
    union
    SELECT 
    FROM tabella where id=

  4. #4
    un'altra soluzione:
    Codice PHP:
    select *
    from tabella
    where id in 
    (3695)
    order by TAN(id*21
    ;-)

  5. #5
    attualmente la soluzione di sally risolve il mio problema anche se per ricerche in centinaia di record diventa dispendiosa la gestione della query

    Originariamente inviato da MacApp
    un'altra soluzione:
    Codice PHP:
    select *
    from tabella
    where id in 
    (3695)
    order by tan (id*21
    ;-)
    mi dà il seguente errore :

    codice:
    FUNCTION tabella.tan does not exist
    :master:
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  6. #6
    sì ho corretto da "tan (id*21)" in "TAN(id*21)". (la prima forma va bene per postgreSQL, non per MySQL)

  7. #7
    Originariamente inviato da MacApp
    sì ho corretto da "tan (id*21)" in "TAN(id*21)". (la prima forma va bene per postgreSQL, non per MySQL)
    adesso l'istruzione funziona ma l'ordine è casuale :master:

    sai dove posso trovare informazioni sulla funzione TAN? sopratutto sul valore che viene moltiplicato per l'ID
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao... e scusate l'intromissione!

    premesso che utilizzo firebird e utilizzo alcune udf generiche.....
    tra le varie udf ne ho una che si chiama UDF_POS, tale funzione mi restituisce la posizione in cui una stringa e' presente all'interno di una seconda stringa.

    io questo problema lo risolverei cosi:

    codice:
    select
    comuni.id,
    comuni.item
    from comuni
    where comuni.id in (3, 6, 9, 5)
    order by
    udf_pos(' '||comuni.id||',',' 3, 6, 9, 5,')

    ciao

  9. #9
    Originariamente inviato da 123delphi321
    ciao... e scusate l'intromissione!

    premesso che utilizzo firebird e utilizzo alcune udf generiche.....
    tra le varie udf ne ho una che si chiama UDF_POS, tale funzione mi restituisce la posizione in cui una stringa e' presente all'interno di una seconda stringa.

    io questo problema lo risolverei cosi:

    codice:
    select
    comuni.id,
    comuni.item
    from comuni
    where comuni.id in (3, 6, 9, 5)
    order by
    udf_pos(' '||comuni.id||',',' 3, 6, 9, 5,')

    ciao
    provata con mysql query browser mi dà il seguente errore :
    FUNCTION tabella.udf_pos does not exist
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    certo che non funziona!

    c'e' bisogno di una funzione UDF. cosi come usi la funzione TAN devi vedere se esiste una ulteriore funzione che in MySQL possa procedere in maniera analoga a quella da me descritta nel post precedente.

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.