Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    Estrarre il max id da una query

    Buongiorno a tutti,
    dovrei tirare il record con id massimo. Ho fatto una query di questo tipo:

    SELECT COLLATION_NAME, CHARACTER_SET_NAME, ID, IS_DEFAULT, IS_COMPILED, SORTLEN
    FROM information_schema.COLLATIONS
    where SORTLEN=(select max(SORTLEN) from information_schema.COLLATIONS);



    Funziona, ma non mi permette di eseguire una query più semplice :

    SELECT COLLATION_NAME, CHARACTER_SET_NAME, ID, IS_DEFAULT, IS_COMPILED, SORTLEN
    FROM information_schema.COLLATIONS
    where SORTLEN=max(SORTLEN) ;

    Avete una soluzione migliore????

  2. #2
    La funzione MAX() che io ricordi la si può usare soltanto in una select. Quindi è necessario una sottoquery come hai fatto nel primo caso. Cosa non ti torna di quell'istruzione?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Confermo quanto dice Nunkij

    è corretta la tua 1°query,

    se vuoi qualcosa di piu semplice puoi provare con ( da adattare al tuo DB Specifico )

    SELECT TOP1 CampoSORTLEN, Campo2, CampoEccetera FROM Tabella ORDER BY CampoSORTLEN DESC

    Facci sapere
    Ultima modifica di nman; 26-04-2014 a 12:50

  4. #4
    Sì vero si può fare anche così o meglio (sintassi più standard perché mi pare che TOP non tutti lo supportino)

    SELECT CampoSORTLEN, Campo2, CampoEccetera FROM Tabella ORDER BY CampoSORTLEN DESC LIMIT 0,1
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  5. #5
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Quote Originariamente inviata da Nunkij Visualizza il messaggio
    Sì vero si può fare anche così o meglio (sintassi più standard perché mi pare che TOP non tutti lo supportino)

    Non è più standard, anzi...

    "The LIMIT clause is not part of standard SQL. It's supported as a vendor extension to SQL by MySQL, PostgreSQL, and SQLite."

    Se il DB che si usa è Access o SQL Server va bene TOP; se Mitele (come da regolamento...) ci dice che database sta usando si riesce ad aiutarlo meglio...

  6. #6
    Allora non sono aggiornato! Ero convinto che top non funzionasse su mysql infatti quando son passato da access a mysql ho dovuto usare limit
    Grazie del chiarimento
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  7. #7
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Quote Originariamente inviata da Nunkij Visualizza il messaggio
    Allora non sono aggiornato! Ero convinto che top non funzionasse su mysql infatti quando son passato da access a mysql ho dovuto usare limit
    Grazie del chiarimento
    Infatti non funziona (e bisogna usare LIMIT)
    La mia osservazione precedente era riferita al fatto che LIMIT non è "più standard" semplicemente perchè non esiste davvero uno standard
    Access e SQL Server usano TOP, MySQL (e qualche altro) usa LIMIT, oracle usa rownum, etc

  8. #8
    Ok grazie!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.