La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/SQL/1343844-Consulta-SQL-para-localizar-palabra-dentro-de-un-texto.html

Consulta SQL para localizar palabra dentro de un texto

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
sin imagen de perfil

Consulta SQL para localizar palabra dentro de un texto

Publicado por leonardo_josue (1173 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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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.
sin imagen de perfil

Consulta SQL para localizar palabra dentro de un texto

Publicado por Raquel (1 intervención) el 14/06/2020 09:01:47
Muchas Gracias! Los ejemplos son muy claros. Me ayudo mucho. Saludos :)

Consulta SQL para localizar palabra dentro de un texto

Publicado por Kevin (1 intervención) el 19/01/2016 20:40:08
Se que ya pasaron algunos años pero puede que a alguien le sea util:

1
2
3
4
5
6
7
8
9
10
declare @var varchar(500)
set @var ='Palabra'
 
SELECT        *
FROM            tabla
WHERE        (columna LIKE '%% '+@var+' %%')
or  (columna LIKE '%% '+@var+'')
or  (columna LIKE ''+@var+' %%')
or  (columna LIKE ''+@var+'')
order by columna

De esta forma solo cambias el valor de la variable.

Consulta SQL para localizar palabra dentro de un texto

Publicado por Adja (1 intervención) el 25/05/2016 20:32:04
Muchas gracias por la información

Consulta SQL para localizar palabra dentro de un texto

Publicado por Vicho (1 intervención) el 17/01/2018 20:10:32
Muchas gracias, era justo lo que buscaba, no importa el tiempo, se agradecen estos aportes
sin imagen de perfil

Consulta SQL para localizar palabra dentro de un texto

Publicado por Andrés (1 intervención) el 06/12/2018 16:59:06
¡Mil gracias!

Consulta SQL para localizar palabra dentro de un texto

Publicado por Black Rabbit (1 intervención) el 15/01/2019 23:25:52
A mi si.

Muchas gracias :)

Consulta SQL para localizar palabra dentro de un texto

Publicado por Leonardo (1 intervención) el 22/04/2020 21:30:15
Como seria en MYSQL? Ya que no me toma la variable que ingresa desde java. Gracias

Consulta SQL para localizar palabra dentro de un texto

Publicado por zururaga (1 intervención) el 01/04/2022 08:54:00
Años después del mensaje me ha sido súper útil
Gracias!