che sto cercando di fare quanto segue in MySQL:SELEZIONA in COALESCE in MySQL
UPDATE
x
SET
y = COALESCE(SELECT z FROM table WHERE a = b AND c = d AND e = f LIMIT 1,
SELECT z FROM table WHERE a = b AND c = d LIMIT 1,
SELECT z FROM table WHERE a = b LIMIT 1);
suona molto valida per me. Sto cercando di aggiornare una colonna con il valore più adatto. Se riesco a trovare un record che corrisponda ai 3 criteri -> questo è quello di cui ho bisogno. Altrimenti quello che soddisfa 2 criteri, altrimenti un record corrispondente a un solo criterio.
Posso farlo in 3 query di aggiornamento, ma non capisco perché questo non funziona. Secondo il manual:
COALESCE returns the first non-NULL value in the list, or NULL if there are no non-NULL values.
Questo è esattamente quello che mi serve. ma dà il seguente errore:
Error Code: 1064. 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'
mi manca qualcosa qui?
Puoi pubblicare il messaggio di errore? – Don
Sei in grado di fornire una query completa, cioè senza la tua generalizzazione in là. Sarebbe utile fornire consigli più accurati. –
È solo un errore di sintassi 1064. La mia domanda è fondamentalmente questa. Dà un errore di sintassi esattamente al SELECT all'interno di COALESCE. – Sherlock