codice:
SELECT IF(CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0)) >0,0 ,CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0))) as conteggio, a.*,m.*,
(
SELECT GROUP_CONCAT(CONVERT(c.campo_c,char(100)),CONVERT(c.campo_c,char(100)) SEPARATOR '|') as campo_c FROM utenza.tab_c as c WHERE s.cod = c.cod
) as tipo,
(
SELECT SUM(if((visto = 1),6,1)) from mot.visual as c where c.cod = s.cod group by c.cod
) as ordine
FROM tabella_utente.utente as a, tabella_s as s
WHERE a.cod = c.cod
".$where." order by ".$sidx." ".$sord." LIMIT ".$start." , ".$limit.";
questa è la query finale.
questo blocco
codice:
SELECT IF(CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0)) >0,0 ,CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0))) as conteggio
non mi piace per nulla, nella where ci sarà tutto questo calcolo con il like
codice:
WHERE IF(CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0)) >0,0 ,CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0))) LIKE '%".$valore."%'
avevo pensato di mettere tutto in una variabile
codice:
SELECT @variabile := IF(CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0)) >0,0 ,CONVERT(((a.val_a-a.val_b)/IF(a.val_b = 0,1,a.val_b))*100,decimal(2,0))) as conteggio
per poi poterla usare nel where
codice:
WHERE @variabile LIKE '%".$valore."%'
la query senza quel where restituisce i record attesi, ma se effettuo una ricerca non mi restituisce nessun record.
Grazie ...
ciao