Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 57
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263

    MySQL: order by espressione

    Ciao a tutti.
    Ho un db mysql e una tabella che contiene dei dati e vari indici.
    Vorrei però ordinare una query fatta con una Select in funzione di una espressione matematica calcolata in funzione di alcuni campi della tabella.

    Es. "Select * from tabella where campo1='0' order by (campo2*campo3)"

    E' possibile farlo ?
    Grazie per l'aiuto.
    Marco

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Optime, se mi rivolgo a voi è perchè, così come l'ho scritta io, non funzica

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    A me funziona.
    Ovviamente i campi sono numerici...

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Ho peccato di sintesi...
    in realtà la query è un po' più complessa in quanto contiene una funzione esterna e anche delle variabili esterne.
    Scritta in maniera grezza per far capire meglio (ma non funziona) è la seguente:


    "SELECT * FROM Tabella where categoria= '" & categoria & "' order by distance(Lat,Long,converti(gradi_nord,primi_nord), convertiGradi(gradi_est,primi_est))"


    dove distance è una funzione esterna che mi calcola la distanza tra due punti, ognuno dei quali identificato da latitudine e longitudine
    converti è una funzione che mi converte le coordinate in polari
    Lat e Long sono due variabili che passo io dall'esterno e che mi identificano uno dei due punti.
    gradi_north,primi_north,gradi_east,primi_east sono i campi della tabella

    Quello cha a me serve è un ordinamento in funzione del risultato della distanza tra i due punti e ovviamente come scrivere correttamente la query.

    Scusate per la sintesi usata precedentemente.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma ti da errore o ordina in maniera non desiderata?
    Prova a racchiudere tutto tra parentesi, al momento non è così.

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    La query l'ho scritta nel modo seguente:

    "SELECT * FROM Tabella where categoria= '" & categoria & "' order by " & distance(lat,long,converti( & "gps_gradi_north,gps_primi_north" &),converti( &"gps_gradi_east,gps_primi_east" & )) &" "

    Da errore sulla & in bold dando Sintax error.

  8. #8
    è un syntax error di asp, allora, non di sql, giusto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Si, sembra che sia un errore asp.
    Ieri un amico mi ha suggerito verbalmente di creare una tabella "virtuale" dove inserire per ogni riga un campo Distanza e inserire il valore, fare una JOIN al mio db e quindi fare la Select ordinando a questo punto per il campo distanza.

    Io non sono un grande esperto di sql: qualcuno è in grado di suggerirmi una "bozza" di come deve essere costruita la query ?

    Di nuovo grazie a tutti.

  10. #10
    tutto sto giro per un banale errore di apici? o hai anche problemi di performance?

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.