logo LWP
Comunidad de Programadores
Crear cuenta
Recordar contraseña
Recordar contraseña en este navegador
Cursos Biblioteca de Temas Preguntas y Respuestas Buscador para Programadores Drivers Solicitudes para Programadores Programas y Utilidades Ofertas de Trabajo

SQL - Consulta SQL para localizar palabra dentro de un texto

Volver
Filtrado por todos los mensajes
 Imprimir facebook  twitter 
Vistas:
Mensajes realizados anteriormente (No estaban la última vez que entraste)
1.256 visitas
1 respuesta
 Consulta SQL para localizar palabra dentro de un texto
leonardo_josue (03/08/2012 16:15:24)
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Consulta SQL para localizar palabra dentro de un texto
Autor:Gorka (1 intervención)
Fecha:03/08/2012 13:45:38
Hola estoy buscando una sentencia SQL para localizar una palabra dentro de un texto. ¿Alguna idea?
Lo que quiero hacer es , por ejemplo , en el siguiente texto :

" Muchos extranjeros irán a las playas españolas próximamente para despejar su mente ".

Si se pone a buscar la palabra mente que salga solo mente y no aparezca próximamente.
He probado con "LIKE" pero no me ha salido nada.
Saludos
Gorka
Responder al autorSubir
También te puede interesar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Consulta SQL para localizar palabra dentro de un texto
Autor:leonardo_josue (554 intervenciones)
Fecha:03/08/2012 16:15:24
Hola Gorka:

Hay que entender que la función LIKE sirve para encontrar PATRONES de cadenas y depende justamente de los comodines que coloques. Los patrones pueden ser tan sencillos o tan complejos como tú quieras. Pongamos un ejemplo:

mysql> SELECT * FROM Tabla; +------+-----------------------+ | id | descripcion | +------+-----------------------+ | 1 | mente al inicio | | 2 | en mente medio | | 3 | al final mente | | 4 | mentecato al inicio | | 5 | en proximamente medio | | 6 | al final proximamente | +------+-----------------------+ 6 rows in set (0.00 sec) mysql> SELECT * FROM tabla -> WHERE descripcion LIKE '%mente%'; +------+-----------------------+ | id | descripcion | +------+-----------------------+ | 1 | mente al inicio | | 2 | en mente medio | | 3 | al final mente | | 4 | mentecato al inicio | | 5 | en proximamente medio | | 6 | al final proximamente | +------+-----------------------+ 6 rows in set (0.00 sec) mysql> SELECT * FROM tabla -> WHERE -> descripcion LIKE 'mente %' OR -> descripcion LIKE '% mente %' OR -> descripcion LIKE '% mente'; +------+-----------------+ | id | descripcion | +------+-----------------+ | 1 | mente al inicio | | 2 | en mente medio | | 3 | al final mente | +------+-----------------+ 3 rows in set (0.00 sec)

Observa que al poner '%mente%', en realidad estás diciendo que contenga esta cadena de caracteres INDEPENDIENTEMENTE DE LA POSICIÓN Y DE SI FORMA PARTE O NO DE OTRA PALABRA... es por eso que te regresa todos los registros.

En la segunda consulta, al utilizar el operador lógico OR puedes especificar cada caso, colocando espacios en blanco, para definir que la palabra MENTE tiene que estar sola, pero puede estar al inicio de la frase, en medio o al final.

En tu post no mencionas qué motor de BD estás utilizando, pero algunos motores manejan el concepto de EXPRESIONES REGULARES que también podrían servir para este tipo de búsquedas. Te recomiendo que le des un vistazo a la documentación para que revises si soporta estas consultas o no...

Saludos
Leo.
Comentar el mensajeSubir