Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

SQL - Consulta SQL para localizar palabra dentro de un texto

  Imprimir  
Vista:

Consulta SQL para localizar palabra dentro de un texto

Publicado por Gorka (1 intervención) el 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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta SQL para localizar palabra dentro de un texto

Publicado por leonardo_josue (681 intervenciones) el 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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar