martes, 12 de junio de 2012

El lenguaje SQL parte 10


En este apartado se estudiará la forma de realizar búsquedas a través de MATCH  AGAINST y al final del apartado un ejemplo de LIMIT.

Antes de nada, para poder realizar búsquedas con MATCH AGAINST hay que configurar la tabla y las columnas de dónde se quiere extraer esa información. 

La tabla ha de ser del tipo: MYISAM

Las columnas han de ser del tipo FULLTEXT.

Ejemplo de conversión de una tabla existente ...

ALTER TABLE tabla ADD FULLTEXT(columna1, columna2, columna3) SET storage_engine=MYISAM;
 
ALTER TABLE tabla ENGINE = MyISAM;


Con esto sería suficiente para utilizar MATCH AGAINST

Para que quede más claro sigue los pasos del ejemplo siguiente ...

1- Crear una tabla con dos campos.

$consulta = "CREATE TABLE busca(columna1 VARCHAR(100), columna2 VARCHAR(100)) ENGINE=MYISAM COLLATE=latin1_spanish_ci";


2- Convertir las columnas en FULLTEXT

$consulta = "ALTER TABLE busca ADD FULLTEXT(columna1, columna2)";


3 - Insertar 3 registros ...
 
 $consulta = "INSERT INTO busca(columna1, columna2)";
$consulta .= "VALUES('El coche no funciona', 'España está en crisis')";

$consulta = "INSERT INTO busca(columna1, columna2)";
$consulta .= "VALUES('La moto no funciona', 'No tengo gasolina')";

$consulta = "INSERT INTO busca(columna1, columna2)";
$consulta .= "VALUES('Busca y encuentra', 'Pepito está en la calle')";


4 - Realizar la búsqueda, vamos a buscar la palabra 'moto'...

$consulta = "SELECT columna1, columna2 FROM busca WHERE MATCH(columna1, columna2) AGAINST ('%moto%' )";


Y El resultado de la consulta es ...

La moto no funciona - No tengo gasolina 

Puedes probar y cambiar el patrón de búsqueda si existe te devolverá las filas dónde ha sido encontrado.

LIMIT: permite limitar la extracción de resultados.

En el ejemplo anterior teníamos tres filas, podemos hacer un SELECT y extraer todas las filas pero, ¿Y si queremos extraer tan sólo las dos primeras filas? ...

$consulta = "SELECT * FROM busca LIMIT 0, 2";


El resultado de la consulta sería la extracción de las dos primeras filas ...

El coche no funciona - España está en crisis
La moto no funciona - No tengo gasolina



No hay comentarios: