Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con IF all'interno di un'istruzione SQL

    Premetto che stò lavorando su MySql. E' possibile fare in modo che all'interno di un'istruzione UPDATE si richiami un valore prima della sua modifica?

    Mi spiego con un esempio:

    codice:
    UPDATE tabella SET a = a + 1, b = IF( a = 1, 300, 200)
    Con questa sql incremento la colonna "a" di 1 mentre do alla colonna "b" un valore che sarà pari a 300 se la colonna "a" vale 1, oppure a 200 negli altri casi.

    Il problema è che la IF lavora sulla colonna "a" già modificata. In altre parole se la mia colonna "a" vale 1, prima viene aggiornata a 2 poi la IF controlla, legge il valore 2 e mi restituisce 200 anzichè 300.
    Vorrei riuscire a fare il controllo prima della modifica (...non ditemi di modificare a dopo la IF, ho fatto solo un esempio...).

    Spero di essere stato chiaro (...o forse no...)

    Ciao e grazie
    www.radiana.it - Spartiti musicali e Mp3

  2. #2
    hai provato a mettere a=a+1 dopo la iif?


    ( stavo scherzando)


    prova con una subquery:

    codice:
    sql = "UPDATE tabella SET a=a+1, b=IF((SELECT a FROM tabella)=1,300,200)"
    ovviamente la select deve restituire un solo valore.

    cmq per farla semplice senza troppi rigiri basterebbe fare:
    codice:
    sql = "UPDATE tabella SET a=a+1, b=IF(a-1=1,300,200)"
    xxx

  3. #3
    Originariamente inviato da Alethesnake
    cmq per farla semplice senza troppi rigiri basterebbe fare:
    codice:
    sql = "UPDATE tabella SET a=a+1, b=IF(a-1=1,300,200)"
    Ci avrei giurato che mi avresti risposto così...e pensare che la funzione che sta dentro la IF l'hai scritta tu, non è poi così immediato ribaltarla!!!

    La soluzione "SELECT a FROM tabella" non restituisce solo un risultato, quindi...

    Ho bisogno di una sorta di ByVal (o ByRef...non ricordo mai...) per il SQL.

    www.radiana.it - Spartiti musicali e Mp3

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.