Stavo cercando di armeggiare con EXIST
Ti spiego (nota END prima di as pertinenza):
codice:
select *, case when f2 is null then 3 when f3 is null then 2 else 1 END as pertinenzafrom tabella where name = $name and f1 = $f1 and ((f2 = $f2 and f3 = $f3) or (f2 = $f2 and f3 is null) or (f2 is null and f3 is null))
order by pertinenza limit 1
In pratica funziona ma non contempla l'eventualità che $f3 si sbagliato.
Nel senso o esiste e c'è (caso =$f3) oppure è null ($f3 is null)
Stesso discorso per $f2.
Infatti nel caso in cui $f2 e/o $f3 siano inesistenti, dovrebbe scattare la clausola con pertinenza successiva e cioè quella dove prende i valori di $f2 e/o $f3 null
E' questa l'utilità del meccanismo.
Scalare indietro se il valore o i valori inseriti di $f2 e/o $f3 sono null OPPURE inesistenti.
Intanto provo a pasticciare ancora e ti ringrazio comunque