Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema Query mysql

  1. #1

    Problema Query mysql

    Ciao a tutti,
    mi da errore un if dentro la query.
    Ho trovato un articolo su internet che mi ha portato a modificare la mia query originale come indicato qua sotto, però va in errore:

    ORIGINALE
    codice:
    strq = "UPDATE email LEFT JOIN emailtemporanea ON email.email=emailtemporanea.email SET email.settore = emailtemporanea.settore WHERE (" & controllosettore & " and (email.email=emailtemporanea.email))"
    MODIFICATA
    codice:
    strq = "UPDATE email LEFT JOIN emailtemporanea ON email.email=emailtemporanea.email SET email.settore = if (if emailtemporanea.settore != null, emailtemporanea.settore) WHERE (" & controllosettore & " and (email.email=emailtemporanea.email))"
    ERRORE
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'


    Praticamente l'upload lo deve fare solo se il campo settore di emailtemporanea non è nullo.

  2. #2
    ----------------------------------------------------
    impariamo a fare un po' di debug

    *immediatamente prima* di eseguire la query metti

    Response.Write "maGGica SQL...: " & strq & "
    "
    Response.Flush

    poi posta quello che viene a video
    ----------------------------------------------------

  3. #3
    eccolo...

    UPDATE email LEFT JOIN emailtemporanea ON email.email=emailtemporanea.email SET email.settore = if (emailtemporanea.settore != null, emailtemporanea.settore) WHERE (((email.nostraemail='aaa')or(email.nostraemail='a ').....


    sicuramente c'era un errore.. e comunque non va ancora:

    codice:
    strq = "UPDATE email LEFT JOIN emailtemporanea ON email.email=emailtemporanea.email SET email.settore = if (emailtemporanea.settore != null, emailtemporanea.settore) WHERE (" & controllosettore & " and (email.email=emailtemporanea.email))"
    c'era if (if ho tolto il secondo if


    errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [MySQL][ODBC 3.51 Driver][mysqld-5.0.92-enterprise-gpl-log]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 ') WHERE (((email.nostraemail='aaa')or(email.nostraemail='a ' at line 1

  4. #4
    certo che se non la posti tutta sarà difficile controllarla

  5. #5
    una query un pò arzigogolata, personalmente tutti gli IF li farei fuori dalla query preparando la variabile strq in base al risultato
    Web site: http://www.francescotacconi.it
    Facebook: http://www.facebook.com/francesco.tacconi
    Linkedin: http://www.linkedin.com/in/tacconif
    Sourceforge: https://sourceforge.net/users/tacconif
    JoomlaCode: http://forge.joomla.org/gf/user/fratac

  6. #6
    Ho tolto la parte dopo where perchè funziona perfettamente.
    Ho visto che è possibile usare l'if nella query e per me sarebbe perfetto integrarla nella mia vecchia query funzionante.

    Comunque, così è completa:

    codice:
    UPDATE email LEFT JOIN emailtemporanea ON email.email=emailtemporanea.email SET email.settore = if (emailtemporanea.settore != null, emailtemporanea.settore) WHERE (((email.nostraemail='aaa')or(email.nostraemail='bbb')or(email.nostraemail='ccc')or(email.nostraemail='ddd')or(email.nostraemail='eee')or(email.nostraemail='fff')or(email.nostraemail='ggg')or(email.nostraemail='hhh')) and (email.email=emailtemporanea.email))

  7. #7
    Risolto semplicemente così:

    codice:
    strq = "UPDATE email LEFT JOIN emailtemporanea ON email.email=emailtemporanea.email SET email.settore = emailtemporanea.settore WHERE (" & controllosettore & " and (email.email=emailtemporanea.email) and (emailtemporanea.settore <> ''))"

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 © 2026 vBulletin Solutions, Inc. All rights reserved.