2010-09-19 85 views
8

Quiero ejecutar una consulta como esta:¿Cómo usar una consulta LIKE con CodeIgniter?

SELECT * FROM table WHERE field LIKE '%search_term%' 

En CI puede enlazar parámetros a las consultas, si utilizó field=? pero esto no funciona para field LIKE "%?%". Desde la salida de depuración parece que la consulta utilizada es field LIKE "%'search'%".

¿Hay una manera alternativa de realizar búsquedas en CodeIgniter?

Respuesta

16

Puede utilizar esta consulta:

SELECT * FROM table WHERE field LIKE ? 

y se unen con %search% en lugar de search.

Debe tener en cuenta que esta consulta será lenta en MySQL. Es posible que desee buscar en la búsqueda de texto libre en su lugar (funciones de búsqueda de texto libre incorporadas de Lucene, Sphinx o MySQL).

+0

Gracias, eso funcionó. Esto no es para una parte importante de mi script, así que la velocidad no es un problema. – DisgruntledGoat

+0

¡Gracias por la referencia de texto libre de MySQL! –

0

lo que puedo entender CI está agregando cotizaciones, pasa FALSO como tercer parámetro mientras se vincula para evitar que CI agregue comillas.

2

esta clase está activo récord de CodeIgniter

$this->db->select('*'); 
$this->db->like('columnname','both'); 
$query=$this->db->get("tablesname"); 
$result=$query->result_array(); 
if(count($result)) 
{ 
return $result; 
} 
else 
{ 
return FALSE; 
} 

Usted debe tratar this..I pensar que su ayuda .. tanto significa% nombrecolumna%, ante los medios nombrecolumna%, después de medios ColumnName%

1
$search_term=$this->input->post('textboxName'); 
$search_term="%".$search_term."%"; 
$sql="SELECT * FROM table WHERE field LIKE ? "; 
$query=$this->db->query($sql,array($search_term)); 
$res=$query->result(); 
+0

Esto ya fue respondido hace 7 años. – DisgruntledGoat

+0

sí. Es una respuesta para una situación donde la cadena está en una cláusula similar. Pero tuve problemas con una consulta donde variable en la cláusula Me gusta. No funciona si lo defines como% variable_name%. Encontré una solución. Es por eso que respondí. –

Cuestiones relacionadas