Porque tienes un espacio entre john
y craig
. Eso funcionaría
select id from person
where replace(concat(fname, lname),' ','') LIKE = '%johncraigsmith%'
pero eso es terrible en el rendimiento por cierto. Mejor seria
select id from person
where lname = 'smith'
and fname = 'john craig'