SQL - Consulta SQL para localizar palabra dentro de un texto

 
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 7 puestos en SQL (en relación al último mes)
Gráfica de SQL

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 :)
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

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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

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
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

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
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
sin imagen de perfil
Val: 3
Ha aumentado su posición en 15 puestos en SQL (en relación al último mes)
Gráfica de SQL

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!
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

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 :)
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

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
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

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!
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