Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema con busqueda like...

Estas en el tema de Problema con busqueda like... en el foro de Bases de Datos General en Foros del Web. Resulta que necesito buscar una frecuencia de codigos en un determinado campo. Necesitaria buscar por ejemplo si : 0D0096 (6 espacios) 000000E Figura 2 veces ...
  #1 (permalink)  
Antiguo 19/01/2009, 15:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Problema con busqueda like...



Resulta que necesito buscar una frecuencia de codigos en un determinado campo.

Necesitaria buscar por ejemplo si : 0D0096 (6 espacios) 000000E

Figura 2 veces en el contenido de un campo.

La sentencia like serviria para esta busqueda.

Seria algo asi:

SELECT Name FROM Cliente WHERE Name = '$usuario' AND Inventory LIKE '%0D0096______000000E%0D0096______000000E% '


Cree un usuario con un campo inventory con esos valores y no me lo toma

FFFFFFFFFFFFFFFFFFFFFFFFFF0D0096352164000000E00000 00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFF0D0096235684000000E0000000000000F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

me tira error en la busqueda.

Uso sql2005 y el campo Inventory es varbinary

Desde ya gracias por la ayuda que me puedan brindar


Última edición por guillox; 19/01/2009 a las 15:43
  #2 (permalink)  
Antiguo 19/01/2009, 15:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problema con busqueda like...

ese campo no es de caracteres.
son representacion en hexadecimal de contenido binario.
no se si hay soporte de LIKE sobre eso.
y mucho menos con comodines.
es mas, ni se si soporta where sobre esos campos.
leeria sobre "varbinary" para ver como buscar en esos campos.
en su defecto, guardaria esos campos en caracteres.
  #3 (permalink)  
Antiguo 19/01/2009, 15:54
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con busqueda like...



Gracias por responder... ley recien que dicen que no toleraba like el varbinary

El sistema ya trabaja asi y ignoro si podria cambiarlo.

A que te referirias a pasarlo a caracteres??

Creo una tabla secundaria en varchar que tome los datos de Inventory cuando se consulte por ese '$usuario' y luego realizo el like??

O de otra forma se hace?

  #4 (permalink)  
Antiguo 19/01/2009, 16:16
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problema con busqueda like...

pasarlo a caracteres.
guardar la representacion en hexadecimal, del valor binario, en un campo de caracteres.

estos son codigos de barra por alguna casualidad? porque estan almacenados en binario?
  #5 (permalink)  
Antiguo 19/01/2009, 16:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con busqueda like...



Si, son lecturas de codigo de barras de articulos.

No entiendo bien a que te referis con guardarlos. ..

Ya intente guardarlos y me los guarda con otro tipo de caracter totalmente diferente al original.

  #6 (permalink)  
Antiguo 19/01/2009, 17:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problema con busqueda like...

claro.
porque esta guardando el valor binario.
osea. esta copiando los contenido verbatim, pero luego convierte a su equivalente en el charset de la db.
O los copias a mano, o los convertis usando alguna funcion. ej. tomando el primer byte y segun su valor, imprimir 0-9A-F.
Entendes encoding de caracteres y representacion hexadecimal de binario?
  #7 (permalink)  
Antiguo 19/01/2009, 17:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con busqueda like...



Te soy sincero.... tengo poco conosimiento de sql

Pense que era una consulta simple de sql pero se me complico bastante.

los primeros caracteres de Inventory son

0xFFF

Estoy leyendo en la web y todavia no encuentro nada que me ayude o oriente un poco mas de como hacer lo que me decis.


  #8 (permalink)  
Antiguo 19/01/2009, 19:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problema con busqueda like...

es mas alla de sql lo que te preguntaba.
pero no importa.
anduve buscando y hay una funcion que convierte de varbinary a cadena de caracteres.

master.dbo.fn_varbintohexstr(valor)

te convierte de binario a string en hexadecimal.

tendrias que hacer un
update tabla set camponuevo = master.dbo.fn_varbintohexstr(campovarbin);
  #9 (permalink)  
Antiguo 21/01/2009, 11:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con busqueda like...



Gracias kpo... no se como agradecerte pero me solucionastes un gran problema..

Gracias por ayudarme.

  #10 (permalink)  
Antiguo 22/01/2009, 06:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problema con busqueda like...

me alegro que te haya sido de ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:19.