2012-01-25 9 views
10

Estoy usando FMDB, que es un contenedor para SQLite. http://github.com/ccgus/fmdbLa consulta FMDB no está actuando correctamente con LIKE

Aquí es mi línea de consulta:

FMResultSet *athlete = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", search_text]; 

El uso de este puedo conseguir un resultado de nuevo si escribo en el nombre exacto del atleta. Pero, estoy tratando de usar LIKE para poder buscar en el nombre. Pero, cuando agrego%?% En vez de solo? ... nada vuelve. Y no hay errores

¿Alguien se ha encontrado con esto antes y sabe lo que estoy haciendo mal?

¡Gracias a todos!

+0

me gustaría sugerir que proporciona conexiones con FMDB para quienes no están familiarizados con ella – bshirley

Respuesta

30

Los caracteres comodín (%) tienen que ser parte de la variable sustituido, no la cadena de consulta:

FMResultSet *rs = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", 
        [NSString stringWithFormat:@"%%%@%%", search_text]]; 
+0

Ah bien ... muchas gracias. Hoy estoy medio dormido, así que supuse que me estaba perdiendo algo simple. =) – TheTC

+0

Tengo dificultades para hacer que esto funcione. ¿Hay una sintaxis alternativa? Me estoy quedando sin ideas. – Echilon

+0

¡Ah bonito! Gracias @omz. Soy muy nuevo en MySQL, ¿te importaría explicar qué significa el %%% @%? Obtengo el% @ ... pero ¿cuál es el significado del otro%? Y el ?. Estoy asumiendo el? es el sql equivalente a% @, pero sigo recibiendo esta advertencia: 'argumento de datos no utilizado por el formato de cadena' – crewshin

Cuestiones relacionadas