Per la ricerca puoi concatenare i campi nome e cognome sui quali andrai a ricercare i valori immessi.

esempio

select * from tabella where concat(nome,' ',cognome) like '%carlo rossi%'

Per evitare di avere più volte gli stessi id puoi raggruppare per l'id stesso.
Ti consiglio inoltre di guardare sul mauale la funzione group_concat() che in questo caso potrebbe tornarti utile.

edit. Non ho capito poi perchè utilizzi la funzione lower(). A meno che tu non abbia specificato un collate case sensitive, la ricerca sarà insensibile alla differenza tra maiuscole e minuscole.