Salve a tutti.
Avevo già postato qualcosa prima ma è finito in terza pagina senza nessuna soluzione.
Visto che comunque il problema adesso è un altro e molto più grave,ed oltre tutto ho fatto modifiche alla query, riposto il problema di prima più quello nuovo.
Ho fatto una query di due select con vari join e where con una union.
codice:
(
SELECT *
FROM anagra****
RIGHT JOIN utenti ON utenti.id_ana = anagra****.ID
RIGHT JOIN ordini ON utenti.id_ana = ordini.id_ana
RIGHT JOIN ctordine ON ctordine.id_ordine = ordini.ID
LEFT JOIN citta ON citta.ID = anagra****.id_citta
LEFT JOIN quartieri ON quartieri.ID = anagra****.id_quartiere
LEFT JOIN categorie ON categorie.ID = anagra****.id_cat
WHERE ragione LIKE '%Valerio%'
AND ordini.flag =1
AND ctordine.flagtl =1
AND ctordine.topl > CURDATE( )
AND anagra****.id_citta = (
SELECT ID
FROM citta
WHERE nomeci = 'Roma' )
AND via LIKE '%via PioX%'
ORDER BY anagra****.ragione ASC
)
UNION (
SELECT *
FROM anagra****
RIGHT JOIN utenti ON utenti.id_ana = anagra****.ID
RIGHT JOIN ordini ON utenti.id_ana = ordini.id_ana
RIGHT JOIN ctordine ON ctordine.id_ordine = ordini.ID
LEFT JOIN citta ON citta.ID = anagra****.id_citta
LEFT JOIN quartieri ON quartieri.ID = anagra****.id_quartiere
LEFT JOIN categorie ON categorie.ID = anagra****.id_cat
WHERE ragione LIKE '%Valerio%'
AND ordini.flag =1
AND ISNULL(
ctordine.topl
)
OR ctordine.topl < CURDATE( )
AND anagra****.id_citta = (
SELECT ID
FROM citta
WHERE nomeci = 'Roma' )
AND via LIKE '%via PioX%'
AND ragione LIKE '%Valerio%'
ORDER BY anagra****.ragione ASC
)
LIMIT 0 , 10
Ok. La query viene eseguita senza problemi.
Però ci sono due problemi
1) Non segue l'ordinamento che ho imposto con ORDER BY anagra****.ragione
2) Se ne sbatte dei WHERE SUCCESSIVI, cioè se la ragione è true e la categoria false lui mi da il risultato!
Bhu ragazzi io sto uscendo pazzo se qualcuno mi aiuta gli faccio una statua 
P.S. hahah c'è il masking per la parola **** "F I C A" hihi cmq anagra**** = anagraf'ica