mmmm
nessun ha qualche suggerimento?
Stavo cercando di vedere se CASE THEN oppure IF THEN ELSE facessero al caso mio ma non capisco.
In pratica la query dovrebbe essere
codice:
// function get_value($f1, $f2, $f3, $tag, $value);
get_value(13, 60, 20, 'A', 'C');
SELECT * FROM tabella X
WHERE
name = test AND
f1 = 13 AND
tag = A
IF f2=60 AND f3 = 20 THEN ( AND f2=60 AND f3=20) // doppia condizione valida
ELSE
f3 = NULL // taglia via il valore più profondo
IF f2=60 THEN ( AND f2=60) // singola condizione valida
ELSE
f2 = NULL // taglia via il valore medio
In pratica:
SE f2 e f3 esistono la query diventa:
codice:
SELECT * FROM tabella X WHERE name = test AND f1 = 13 AND tag = A AND f2=60 AND f3=20
Altrimenti
SE esiste solo f2 la query diventa:
codice:
SELECT * FROM tabella X WHERE name = test AND f1 = 13 AND tag = A AND f2=60 AND f3 = null
SE non esistono nè f2 nè f3 la query diventa
codice:
SELECT * FROM tabella X WHERE name = test AND f1 = 13 AND tag = A AND f2=null AND f3 = null
Scala indietro il VALUE da prendere andando verso il più globale e il meno specifico
Che casino da spiegare...