PDA

Ver la Versión Completa : Busqueda de texto en MySQL


vivim82
31-05-2004, 19:09:52
Hola a todos,
necesito saber como se manejan las búsquedas en MySQL. Tengo una tabla con un campo LongBlob y no puedo uitlizar FULLTEXT para buscar palabras dentro de los textos. Entonces, estoy usando LIKE, pero el problema es que -desde mi desconocimiento - aparentemente es Case Sensitive, y no puedo buscar tampoco palabras con acentos.
Alguien conoce alguna otra forma de búsqueda en textos que sea mas precisa que LIKE?
Muchas Gracias!

Vivi

Julián
31-05-2004, 20:28:48
Yo uso tablas con campos tipo TEXT para almacenar textos grandes (el equivalente al tipo memo en dbf o paradox) y usando LIKE no tengo ningún problema con mayusculas/minusculas ni con los acentos.

¿¿Porque no usas campos tipo TEXT para almacenar textos??

taluegorl

vivim82
01-06-2004, 14:44:06
Hola Julian,
los textos que almaceno son archivos rtf, y la idea es buscar dentro de ellos palabras que un usuario necesite. Es posible almacenar en campos del tipo TEXT este tipo de archivos?

Gracias!
Vivi

Julián
01-06-2004, 16:19:03
A ver si consigo explicarme:

Lo que tu haces es guardar un archivo en un campo de tipo BLOB
El que la extensión de ese archivo sea RTF o cualquier otra, le es indiferente al MySQL. Es decir, podrias estar guardando archivos .OBJ o.DCU o .JPG o .AVI de la misma manera que ahora guardas los .RTF ¿verdad?

Dices que no te funciona el LIKE sobre un campo BLOB, y es completamente lógico, pues un blob es un foprmato binario.

Dices que no puedes usar el FULLTEXT, y eso es porque no debes haber leido este hilo: http://www.clubdelphi.com/foros/showthread.php?t=10686 en donde un usuario tiene ese mismo problema y le explico que los indices FULLTEXT sólo se puede crear para campos de tipo TEXT, CHAR o VARCHAR o para una combinación de ellos.

Por cierto, que acabo de darme cuenta de que dicho usuario eres tu mismo. ¿que pasa? ¿no te gustó la explicación?

Y para terminar: Si lo que quieres guardar es texto y ademas vas a querer hacer busquedas sobre ese texto, es un gran error el guardar ese texto dentro de un campo binario y ademas a su vez en formato RTF. Para poder hacer busquedas ahí necesitarias hacerte un procedimiento que leyera registro a registro el texto de cada uno de esos rtf, lo cual obviamente es una chapuza de la ostia.

¿la solución? evidente: debes usar campos de tipo TEXT para guardar texto, y veras que entonces el LIKE funciona perfectamente.

¿que el texto lo tienes en formato RTF? bueno, pues guarda sólo el texto yu olvida el rtf.

Taluegorl




.

Julián
01-06-2004, 16:37:21
Creio que has respondido a un mensaje que tenia a medio redactar y que en realidad no iba dirigio a tí, lo que pasa es que le dí a enviar antes de tiempo, y antes de quitar esa parte, que habia pegado del portapeles.

Supongo que verias que el mensaje estaba sin terminar.

Ha sido un error mio, involuntario, pero mio.

De toas maneras, hay que ver que gatillo mas rápido tienes ¿no?


DAte cuanta de que tu mensaje es POSTERIOR a la edición de mi mensaje.

Ahora estaría bien que editaras el tuyo, mas que nada para que no hagamos el ridiculo.

¿o no? :D

vivim82
01-06-2004, 16:50:08
JUAJUAAAAAAAAAA!!!!

Igual leo todos los mensajes que dejan en mis topicos y a veces me olvido de agradecer...
Gracias!
Vivi:D

Julián
01-06-2004, 16:57:21
Bueno, si quieres, como te decía en el anterior mensaje, puedes editar tu mensaje y borrar la parte del "calenton" y yo haré lo mismo con mi "aclaración". Mas que nada para no hacer el ridiculo cuando alguien las lea.

¡saludos!