Weil zwischen john
ein Leerzeichen steht und craig
. Das würde funktionieren
select id from person
where replace(concat(fname, lname),' ','') LIKE = '%johncraigsmith%'
aber das ist schrecklich auf Leistung BTW. Besser wäre
select id from person
where lname = 'smith'
and fname = 'john craig'