like
Hola Foro, sabemos q para buscar una cadena dentro de otra utilizamos LIKE de forma q
buscamos la subcadena 'cadena' en CAMPO1 pero... cómo hacer si queremos hacerlo al reves? Buscar el valor CAMPO1 en la cadena q le pasamos a LIKE. Espero haber sido claro y q alguien tenga una respuesta. Saludos! |
¿Qué estas intentando hacer? Porque dicho así... no lo pillo.
Saludos |
Bueno.
Lo qu eentendi fue que si tienes una cadena (Ej:) 'gato'. que se haga una busqueda de cuales campos (Fields) tienen en su contenido (o registros) 'gato'. Sera??:confused: :confused: :confused: :confused: Saludos. |
Yo entendí más o menos lo mismo.... pero... Si tengo 3 campos y resulta que el dato lo meto aleatoriamente en el campo1, campo2 o campo3, ¿de qué me sirve tener una estructura ordenada de bases de datos? Digo yo... para algo está un campo Observaciones donde meter toda esa morralla y por lo menos, ya sé donde tengo que buscar.
En el caso de hacer una pantalla de búsqueda genérica para todo tipo de Dataset, pues habría que mantener un orden, es decir, el primer campo de búsqueda en la interfaz lo asocio conceptualmente con el campo1 y así busco en ese campo nada más. Saludos |
Hola a todos:
Supongo yo entendi que si tienes registros del tipo azul verde gris rojo quienes hacer un like para que te salgan por ejemplo solo azul y rojo partiendo de mi supuesto prueba esto Código:
select * from tabla where 'azul rojo' like '%'+campo+'%' |
Buenas de nuevo, gracias por vuestro aporte pero creo q yo debí haberme explicado mejor con un caso practico...
Supongamos q en CLAVES tengo una seria de adjetivos tales como frio, calor, interesante, aburrido, intenso, suave... etc.. etc... y el usuario introduce una frase en un TEdit tal como 'El frio era tan intenso q dolía la cara'. Pues bien, el cometido sería q apartir de la frase introducida podamos tener como resultado los registros frio e intenso. La solución q me da JOSEA ya la probé en su momento puesto q fue lo más lógico, pero ésto no da ningun resultado ni con like '%'+campo+'%' ni tampoco con like '%'||campo||'%' Ahora mismo, para salir del paso, lo tengo solucionado con la funcion Pos While not sql1.EOF do begin If Pos(sql1.FieldByNameAsString('CLAVES'), Edit1.Text) > 0 then ShowMessage(' --- CADENA ENCONTRADA --- '); sql1.Next; end; Pero a medida q el campo 'CLAVES' vaya teniendo más registros esto puede hacerse eterno. Saludos y gracias! |
La forma que se me ocurre tampoco es eficiente, pero en fin...
El servidor puede volverse loco cuando sea un párrafo entero :D pero será cuestion de enviarle peticiones con frases cortas. Hacerlo es muy fácil, solo necesitas una rutina que al pasarle una frase, detecte el espacio en blanco y use QuotedStr para añadirle las comillas y le añada las comas. A ver si alguien aporta un método más eficiente. Saludos |
Gracias Lepe!
Muy ingeniosa la propuesta e incluso la veo factible pues en mi caso, la cadena a pasar dudo q contenga más de 8 o 10 palabras. No obstante, no me saca del aprieto esta forma ya q los registros del campo CLAVES pueden contener mas de una palabra. De todas formas gracias ya q estamos aprendiendo todos un poco. Saludos |
Espero te sirva
para el gestor
para delphi
Puesto de otra manera
|
La franja horaria es GMT +2. Ahora son las 14:53:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi