Ehm no
In realtà devi fare il controllo su ogni singolo campo.
Codice PHP:
if (isset($_POST['indirizzo'])) {
 
$where .= ($where == "") ? "indirizzo LIKE'%".$_POST['indirizzo']."%'" " AND indirizzo LIKE'%".$_POST[indirizzo]."%'";

In pratica cosa fa:
è settato "indirizzo"?
Se si allora controlla la stringa $where. Se già contiene qualcosa devo aggiungere un'altra condizione anteponendole un AND. Se è vuota devo mettere la PRIMA condizione quindi non devo usare alcun operatore logico.