Hace unos dias necesitaba unas funciones para poder implementar un búscador que aceptase terminos booleanos, es decir, que se pudiesen buscar cosas como: “linux AND gimp”, “gaim OR gaim-vv”, “linux + torvalds”….
En primer lugar descubrí que a partir de MySQL 4 se podian hacer consulta sobre campos FULLTEXT en lo que se denomina “IN BOOLEAN MODE”. Con esto podiamos buscar “linux +torvalds” y la propia MySQL se encarga de interpretar los operadores booleanos. Esto es fantástico pq te hace todo el trabajo sucio automáticamente, pero el inconveniente es que es necesario la versión 4 y los campos FULLTEXT no estan soportados en tablas INNODB.
Así que seguí buscando y encontre unas fantásticas funciones en esta web, las cuales interpretan los terminos booleanos para contruir una sentencia SQL. El único problema es que utilizaba campos FULLTEXT, así que tuve que adaptar las funciones para que buscase con el LIKE de toda la vida, cuando puera pegare por aqui las modificaciones 🙂