Ho una dichiarazione UPDATE MySQL che utilizza una clausola caseMySQL CASO ... Dove ... THEN
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
WHEN partFK = 2 THEN 8
END
WHERE buildFK = 1;
I lavori dichiarazione di cui sopra. Tuttavia, quando rimuovo una delle istruzioni WHEN, si interrompe e l'errore indica che la clausola CASE non restituisce nulla. È che la clausola CASE deve avere più di un WHEN per funzionare.
Non so in anticipo quanti aggiornamenti mi serviranno, quindi sto provando a creare una singola istruzione di aggiornamento in grado di gestire uno o più aggiornamenti.
Grazie per eventuali approfondimenti che è possibile fornire.
Ah, capisco. Avevo letto che il database valuta il CASE su ogni riga, quindi ha senso ora. La tabella è un collegamento tra build e parti, questa tabella è dove viene memorizzata la quantità. Posso usare il valore corrente in ELSE? Cioè ELSE quantity – CDspace
Sì, 'ELSE quantity' dovrebbe funzionare. – recf
Fantastico, grazie per averlo chiarito. E per la cronaca, 'ELSE quantity' ha funzionato. – CDspace