Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2010
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
¿Se pueden comparar máscaras guardadas en una base de datos?

Con la palabra clave "Like" se pueden crear patrones de búsqueda:

SELECT * FROM base de datos
WHERE nombre LIKE 'ANT%'

Pero ¿y lo contrario?, es decir guardar en la base de datos patrones y acceder a ellos con alguna claúsula.

Supongamos que tenemos este patrón en la base de datos 'ANT', queremos buscar ese registro desde 'ANTIGUO' ó desde 'ANTONIO', ¿es factible?.

Saludos.
Responder Con Cita
  #2  
Antiguo 06-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Disculpa pero no acabo de entenderte, podrias ser un poco más detallista?, mejor si pones algun ejemplo para una mejor comprensión..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 07-04-2010
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
A la aplicación, en uno de los apartados, se le introducen datos de artículos del tipo 'DGH25G486', 'CF54F2789', '2DGH5G486', etc. Observa que el tercer código es una reposición del mismo artículo que el primero, asi es como distinguen las reposiciones.

El caso es que quieren, por ejemplo ,a todos los artículos que incluyan "DGH" hacerles un descuento del 2%, a los que incluyan "CF" otro del 4%, etc.

De ahí la pregunta de si se puede, partiendo del artículo, comparar dicho artículo con la pertinente máscara creada en la base de datos, en esta base irá además el descuento pertinente.

Gracias por tú interes, espero haberme explicado correctamente.
Responder Con Cita
  #4  
Antiguo 07-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Si te estoy entendiendo bien , tu consulta SQL tendría que ser muy parecida o similar a ésta:
Código SQL [-]
SELECT * FROM MiTabla t1,Patrones p 
WHERE t1.nombre LIKE Concat('%',p.Patron,'%')

Patron es el campo de Patrones que tienes almacenado en tu tabla de Patrones..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 07-04-2010 a las 21:45:08.
Responder Con Cita
  #5  
Antiguo 08-04-2010
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
No me encuentra ningún registro, tampoco me permite la construcción exactamente igual que la escribes tú, de todas formas esta es la que he creado yo como prueba:

SELECT * FROM Patrones p WHERE 'DGH25G486' LIKE ('%p.Patron%')

y así tampoco me devuelve ningún resultado:

SELECT * FROM Patrones p WHERE 'DGH25G486' LIKE ('%,p.Patron,%')

por supuesto tengo una tabla con un campo Patron igual a 'DGH'

Saludos.

Última edición por voci fecha: 08-04-2010 a las 13:44:19.
Responder Con Cita
  #6  
Antiguo 08-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Cita:
Empezado por voci Ver Mensaje
No me encuentra ningún registro, tampoco me permite la construcción exactamente igual que la escribes tú, de todas formas esta es la que he creado yo como prueba:

SELECT * FROM Patrones p WHERE 'DGH25G486' LIKE ('%p.Patron%')

y así tampoco me devuelve ningún resultado:

SELECT * FROM Patrones p WHERE 'DGH25G486' LIKE ('%,p.Patron,%')

por supuesto tengo una tabla con un campo Patron igual a 'DGH'

Saludos.
Bueno el anterior ejemplo estaba hecho para MySQL, entonces sería muy importantes que menciones que Servidor de base de dato estas usando?..¿MySQL,MS SQL Server,Oracle,Firebird,PostGreSQL,etc? ¿cuál?.
Si te das cuenta en el ejemplo anterior estoy usando la funcion "Concat" para concatenar el simbolo "%" con el patron almacenado en la Base de dato..
Saludos....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comparar estructuras y actualizar Base de datos Interbase Chaja Conexión con bases de datos 5 12-07-2021 09:43:25
Comparar Structura y procedimientos de base de datos firebird sierraja Firebird e Interbase 17 11-12-2013 23:48:42
comparar fecha actual con una guardada en mi base d datos chass Varios 6 26-06-2008 18:58:39
Contraseñas guardadas Delar Varios 3 16-07-2007 12:42:11
Cómo se pueden conectar dos bases de datos? ronimaxh Conexión con bases de datos 2 28-06-2003 03:54:33


La franja horaria es GMT +2. Ahora son las 20:34:01.


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
Copyright 1996-2007 Club Delphi