Hola pumpkinpie, no sé qué DBMS estés manejando, pero sigo sin entender la lógica de tu consulta. Supongamos que tu campo city tiene los siguientes valores:
Código:
Puerto Vallarta
Puerto Príncipe
Puerto de Palos
Ahora bien, si el usuario teclea 'Puerto' lo que propones sería equivalente a hacer las siguientes comparaciones:
Código:
'Puerto' like '%Puerto Vallarta%'
'Puerto' like '%Puerto Príncipe%'
'Puerto' like '%Puerto de Palos%'
lo cual siempre regresaría un falso. Sigo pensando que lo correcto es hacer esto:
Código:
'Puerto Vallarta' like '%Puerto%'
'Puerto Príncipe' like '%Puerto%'
'Puerto de Palos' like '%Puerto%'
que en tu caso creo sería algo así
Código:
city like CONCAT('%', $address, '%')
Pero si te funciona lo que pones, pues adelante.
Saludos
Leo.