Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema di sintassi

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    38

    Problema di sintassi

    Ciao a tutti, ho scritto questa query di aggiornamento della tbella

    codice:
    c.prepareStatement("UPDATE stazione_meteo SET velocita_vento=?, direzione_vento=?,raffica_vento=?,TIME=?  WHERE TIME= SELECT MAX(TIME) FROM stazione_meteo ");
    ma continua a darmi questo errore :
    codice:
    jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT MAX(TIME) FROM stazione_meteo' at line 1
    Mi potete aiutare???A me la query sembra giusta.
    Grazie a chi risponderà

  2. #2
    ciao, prova così
    WHERE TIME= (SELECT MAX(TIME) FROM stazione_meteo ") );

    cioè mettendo la select tra parentesi...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    38
    Grazie avevi ragione però ora mi dà questo errore:

    You can't specify target table 'stazione_meteo' for update in FROM clause

  4. #4
    Originariamente inviato da bibo86
    Grazie avevi ragione però ora mi dà questo errore:

    You can't specify target table 'stazione_meteo' for update in FROM clause
    vedi questo thread. Stesso problema.

    http://forum.html.it/forum/showthrea...readid=1484475

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    38
    Grazie ma non è proprio lo stesso problema poicè io devo fare l'aggiornameto in base all'ultimo tempo inserito ma non solo della prima riga...era per quello che selezionavo il tempo massimo.

  6. #6
    Originariamente inviato da bibo86
    Grazie ma non è proprio lo stesso problema poicè io devo fare l'aggiornameto in base all'ultimo tempo inserito ma non solo della prima riga...era per quello che selezionavo il tempo massimo.
    E' lo stesso problema significa che non puoi fare un update con subquery sulla stessa tabella.

    Poi la query puo' anche essere diversa, ma il problema e' lo stesso.

    Comunque il max(time) ti rende una sola riga e lo stesso farebbe

    order by TIME DESC
    limit 1


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

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    38
    ok grazie ancora, quindi dovrei fare una query pre selezionare l'ultimo tempo e poi una per l'update giusto??

  8. #8
    Originariamente inviato da bibo86
    ok grazie ancora, quindi dovrei fare una query pre selezionare l'ultimo tempo e poi una per l'update giusto??
    Le vie sono due:

    1) quella che ti ho proposto con order by desc e limit 1
    2) prelevare l'id del record da modificare con una query preventiva e modificare poi con where id = '$id_ottenuto'

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    38
    Infatti stavo provando a fare la seconda...

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.