Bueno... resulta que necesito encontrar una palabra exacta dentro de una cadena de texto, he probado con Like %variable% lo cual funciona pero el tipo de búsqueda que hace es encontrar cualquier cosa que contenga la variable por ejemplo:
si tengo una tabla con los siguientes registro:
-juan
-juancho
-juanito
-juan pablo
-juananero
y al querer buscar "juan" con Like %juan% me dará como resultado los 5 registros
lo que necesito es buscar todos los registros que tengan la palabra "juan" en este caso me debería dar sólo dos resultados que serían:
-juan
-juan pablo
alguien sabe como hacerlo?
saludos!
Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
Mirate este enlace Coincidencia de patrones (busquedas en MySql)
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
lo he mirado pero aún no doy con lo que busco... sólo me muestra la opción de %variable o variable% que sólo busca que termine de tal forma o empiece de tal forma pero no encuentra una palabra exacta.
jsbsan escribió: [Ver mensaje]
lo he mirado pero aún no doy con lo que busco... sólo me muestra la opción de %variable o variable% que sólo busca que termine de tal forma o empiece de tal forma pero no encuentra una palabra exacta.
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
Last edited by jousseph on Monday, 07 January 2013, 06:05; edited 1 time in total
Death mira esa condición like ya la hemos hablado aquí en el foro ya que muchos lo han usado hasta para validar campos imagínate si el tipo se llama jose y meto juan "lo deja entrar automáticamente" porque quiere decir todo lo relacionado al mismo y lo único que haces decir buscar por nombre j j j j o algo parecido a los que son de j j j y eso no es lo que se quiere, por ejemplo usa esta para buscar algo exacto a tu base de datos.
ejemplo:
para ello se debe usar la sentencia "where":
ESTO ES CONSULTAS POR TABLAS:
Public Sub Button2_Click()
Dim fila As Integer
If Label1.Text = "CEDULA" Then
coneccion.hresul = coneccion.hcon.Exec("Select *from usuarios where nombre='" & TextBox3.Text & "'")--------Lo que metas alli en el campo nombre exacto lo mostrara en una tableview de lo contrario nada!
Ahora si es por textbox es otra cosa revisa un poco consultas por tetxbox.
http://foro.gambas-es.org/viewtopic.php?f=3&t=1695&start=10
ejemplo:
para ello se debe usar la sentencia "where":
ESTO ES CONSULTAS POR TABLAS:
Public Sub Button2_Click()
Dim fila As Integer
If Label1.Text = "CEDULA" Then
coneccion.hresul = coneccion.hcon.Exec("Select *from usuarios where nombre='" & TextBox3.Text & "'")--------Lo que metas alli en el campo nombre exacto lo mostrara en una tableview de lo contrario nada!
Ahora si es por textbox es otra cosa revisa un poco consultas por tetxbox.
http://foro.gambas-es.org/viewtopic.php?f=3&t=1695&start=10
Last edited by jousseph on Monday, 07 January 2013, 06:05; edited 1 time in total
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
jousseph a lo que apuntas es a otra cosa... lo que necesito es buscar una palabra exacta dentro de una cadena de texto de un registro en una base de datos sqlite, la sentencia where por si sola no me sirve ya que lo que hace es buscar la coincidencia entre el registro completo de la base de datos con el texto a buscar, por otro lado si uso where en conjunto con un Like, la únicas posibilidades que tengo es encontrar que empiece como (Like xxx%), que termine como (Like %xxx) o que encuentre la coincidencia donde sea (Like %xxx%) pero no logro poder dar con la solución que busque una palabra exacta dentro del registro de la base de datos.
ejemplo... tengo la siguiente tabla:
ID Parrafo
1 la meza es de color rojo
2 en mi país son escasa las flores
3 Bárbara vendrá a mi casa el sábado
4 mi automóvil no tiene radio
5 a mi hermana le gustan los mitos y leyendas
en este caso quiero buscar una palabra exacta dentro del campo "Parrafo" y si solamente uso where no funcionará porque buscará la coincidencia con el registro completo, si uso Like %casa% me dará por resultado el ID 2 y 3 pero si te das cuenta en el ID 2 no existe la palabra "casa", sólo existe la palabra "escasa", por lo tanto tampoco sirve este método, si uso Like casa% o Like %casa buscará una palabra que comience con casa o termine con casa respectivamente.
Lo que busco es algo parecido a Contain de t-sql de .net que te da la posibilidad de encontrar una palabra dentro de una cadena de texto, que es precisamente lo que busco.
espero que me entiendas ahora... a lo mejor fui un poco enredado al principio...
ejemplo... tengo la siguiente tabla:
ID Parrafo
1 la meza es de color rojo
2 en mi país son escasa las flores
3 Bárbara vendrá a mi casa el sábado
4 mi automóvil no tiene radio
5 a mi hermana le gustan los mitos y leyendas
en este caso quiero buscar una palabra exacta dentro del campo "Parrafo" y si solamente uso where no funcionará porque buscará la coincidencia con el registro completo, si uso Like %casa% me dará por resultado el ID 2 y 3 pero si te das cuenta en el ID 2 no existe la palabra "casa", sólo existe la palabra "escasa", por lo tanto tampoco sirve este método, si uso Like casa% o Like %casa buscará una palabra que comience con casa o termine con casa respectivamente.
Lo que busco es algo parecido a Contain de t-sql de .net que te da la posibilidad de encontrar una palabra dentro de una cadena de texto, que es precisamente lo que busco.
espero que me entiendas ahora... a lo mejor fui un poco enredado al principio...
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
Last edited by jsbsan on Tuesday, 08 January 2013, 17:57; edited 1 time in total
¿y por que en vez de buscar like "%casa%", buscar like "% casa %" (un espacio entre % y la palabra buscada, y otro espacio entre la palabra buscada y %?
Para buscar cualquier palabra:
Es posible que falle asi... prueba esto:
Solamento añado un parentesis y apostrofe al principio y al final
Para buscar cualquier palabra:
.....Like % " & palabrabuscar & " % ....
Es posible que falle asi... prueba esto:
.... like ('% " & PalabraBuscar & " %') ... "
Solamento añado un parentesis y apostrofe al principio y al final
Last edited by jsbsan on Tuesday, 08 January 2013, 17:57; edited 1 time in total
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
jsbsan el problema de buscar con espacios es que dejas afuera cualquier palabra que se encuentre junto a un símbolo por ejemplo:
casa,
,casa
-casa
:casa
casa:
etc
entonces en esos casos no podrá encontrar esas palabras...
mmmmm me niego a que no se puede hacer la búsqueda que necesito...
casa,
,casa
-casa
:casa
casa:
etc
entonces en esos casos no podrá encontrar esas palabras...
mmmmm me niego a que no se puede hacer la búsqueda que necesito...
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
Last edited by jsbsan on Tuesday, 08 January 2013, 21:56; edited 2 times in total
He encontrado esto: Enlace Coincidencia de patrones y REGEXP y
blog Expresiones regulares (REGEXP) en MySQL
En el blog viene un ejemplo que te hace lo que quieres:
Nota:
Mirate el blog, para ver el codigo del ejemplo, porque en el editor del foro no sale completo...
blog Expresiones regulares (REGEXP) en MySQL
En el blog viene un ejemplo que te hace lo que quieres:
Citar:
Nota:
Mirate el blog, para ver el codigo del ejemplo, porque en el editor del foro no sale completo...
Last edited by jsbsan on Tuesday, 08 January 2013, 21:56; edited 2 times in total
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
Algo raro pasa...
estuve investigando y efectivamente como dices tu, usar expresiones regulares con REGEXP puedo obtener el resultado que busco, pero al agregarlo a mi instrucción SQL me da error, lo intenté de muchas formas pensando que estaba mal hecha pero no, el resultado era siempre el mismo... ERROR
buscando información en Sqlite.org di con este párrafo
como se puede observar, en la explicación habla sobre el error y habla de una función en tiempo de ejecución. Esto ya me deja enredado pero si me deja claro que tratar de ejecutarla de la forma tradicional no funcionará jamás. Buscando un poco más me di cuenta que dentro de los componentes de Gambas3 existe uno que se llama gb.pcre que al agregarlo a mi proyecto y al declarar una variable me permite declararla como REGEXP ejemplo:
la verdad es que desconozco si esto tiene alguna relación pero creo que puede servir para poder darnos una idea de donde debemos apuntar.
estuve investigando y efectivamente como dices tu, usar expresiones regulares con REGEXP puedo obtener el resultado que busco, pero al agregarlo a mi instrucción SQL me da error, lo intenté de muchas formas pensando que estaba mal hecha pero no, el resultado era siempre el mismo... ERROR
buscando información en Sqlite.org di con este párrafo
Citar:
como se puede observar, en la explicación habla sobre el error y habla de una función en tiempo de ejecución. Esto ya me deja enredado pero si me deja claro que tratar de ejecutarla de la forma tradicional no funcionará jamás. Buscando un poco más me di cuenta que dentro de los componentes de Gambas3 existe uno que se llama gb.pcre que al agregarlo a mi proyecto y al declarar una variable me permite declararla como REGEXP ejemplo:
la verdad es que desconozco si esto tiene alguna relación pero creo que puede servir para poder darnos una idea de donde debemos apuntar.
Subject: Re: Cómo Busco Una Palabra Exacta En Una Cadena De Texto Con Sql?
El problema no es de gambas, ni tiene que ver con componente gb.pcre.
El problema viene de SQLITE . Por lo que he leido, la funcion REGEXP, no viene instalada por defecto en SQLITE (en algunas distribuciones linux parece que si, en Ubuntu, no). La solución es instalarla, para que SQLITE la reconozca....
En la siguiente dirección url Enlace he encontrado lo que parece ser la solución:
Y en un comentario tambien dice otra forma de cargarla:
El problema viene de SQLITE . Por lo que he leido, la funcion REGEXP, no viene instalada por defecto en SQLITE (en algunas distribuciones linux parece que si, en Ubuntu, no). La solución es instalarla, para que SQLITE la reconozca....
En la siguiente dirección url Enlace he encontrado lo que parece ser la solución:
Citar:
Y en un comentario tambien dice otra forma de cargarla:
Citar:
Page 1 of 2
You cannot post new topicsYou cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events
This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Generation Time: 0.1218s (PHP: -25% SQL: 125%)
SQL queries: 26 - Debug Off - GZIP Enabled