Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Ordinamento query

  1. #1

    Ordinamento query

    Se eseguo una query del tipo:
    SELECT username
    FROM forum_users
    WHERE id = '6' OR id = '3' OR id = '5' OR id = '9'

    i risultati vengono ordinati in base allo username, e non in base all' ordine dell' id da me inserito...come posso fare per far rispettare l' ordine da me imposto ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    SELECT username
    FROM forum_users
    WHERE id = '6' OR id = '3' OR id = '5' OR id = '9' order by id

  3. #3

    Re: Ordinamento query

    Originariamente inviato da faiel
    Se eseguo una query del tipo:
    SELECT username
    FROM forum_users
    WHERE id = '6' OR id = '3' OR id = '5' OR id = '9'

    i risultati vengono ordinati in base allo username, e non in base all' ordine dell' id da me inserito...come posso fare per far rispettare l' ordine da me imposto ?
    L'ordine viene stabilito dalla direttiva ORDER BY oppure in mancanza dall'indice usato.

    Quella che tu indichi in where e' la condizione di estrazione e non l'ordine . Che poi sarebbe un "ordine" arbitrario e non ordinato.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Mi sembra evidente che se aggiungo ORDER BY ID mi ordinerà gli ID in base all' ordine crescente, e non è quello che voglio...voglio che rispettino l' ordine che io gli ho dato....
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Che io sappia non è fattibile automaticamente. Comunque puoi crearti un campo nel quale inserisci la posizione da te voluta ed ordinare su questo campo. E' un po' contorto ma funzionerà.

    Esempio : assumo che il nuovo campo sia pippo

    // azzerare il campo
    update tabella set pippo = 0;
    //
    update tabella set pippo = 1 where id=6
    update tabella set pippo = 2 where id=3
    update tabella set pippo = 3 where id=5
    update tabella set pippo = 4 where id=9
    //
    select username from tabella where pippo <> 0 order by pippo

  6. #6
    Mi sembra un pò artificioso come lavoro, anke perchè si parla di dati che vengono modificati continuamente, quindi sarebbe un lavoro inutile.....è propio impossibile trovare la query giusta ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Un'altra soluzione sarebbe di usare UNION e quindi di fare 4 queries nel tuo caso.....


    PS : perche vuoi fare cosi ?

  8. #8
    Ti spiego di cosa si tratta, così magari trovi una soluzione migliore. Monitorizzo gli ultimi 5 utenti registrati (quindi che hanno un id ed uno username) che hanno visto la mia home page. Registro i loro dati in una cella di un database in questo modo:

    id1-id2-id3-id4-id5

    POi tramite EXPLODE separo i campi e faccio la sopracitata query per ottenere gli username...capisci ora perchè è molto importante l' ordine ??? perchè riguarda una successione cronologica....
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Potresti utilizzare una tabella con l'id e la data - ora e poi fare una join tra le due tabelle ordinando per data ora. In quella tabella inserisci i visitatori.

    select username, B.data_ora from tabella_utenti A, tabella_visite B where A.id = B.id order by B.data_ora limit 0,5


    altrimenti la vedo difficile.

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.