Perché hai uno spazio tra john
e craig
. Funzionerebbe
select id from person
where replace(concat(fname, lname),' ','') LIKE = '%johncraigsmith%'
ma questo è terribile per le prestazioni BTW. Meglio sarebbe
select id from person
where lname = 'smith'
and fname = 'john craig'