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

Problema con busqueda en un campo CLOB

Estas en el tema de Problema con busqueda en un campo CLOB en el foro de Bases de Datos General en Foros del Web. hola peña! Puse este post en el subapartado de oracle, pero es bastante urgente y quizas aqui lo veais mas gente. Pido perdon a los ...
  #1 (permalink)  
Antiguo 30/05/2007, 03:34
Avatar de OzonoBCN  
Fecha de Ingreso: diciembre-2003
Mensajes: 59
Antigüedad: 20 años, 4 meses
Puntos: 0
Problema con busqueda en un campo CLOB

hola peña!
Puse este post en el subapartado de oracle, pero es bastante urgente y quizas aqui lo veais mas gente. Pido perdon a los admins por duplicar, podeis borrar el del subforo oracle si quereis...

Tengo un problema en una pagina de busqueda contra oracle que me esta matando. A ver si los cracks de Oracle me podeis ayudar...

A grosso modo, existe un campo CLOB en la base de datos, en el que se guarda informacion serializada mediante la funcion serialize() de php

Un ejemplo del valor de un campo en la BD:
Código:
a:1:{s:8:"discount";s:21:"descuento de 20 euros";}
El caso es que tengo que hacer un buscador por este CLOB de forma que si alguien busca por ejemplo discount, saque esta y todas las que encuentre en otros registros.

Al hacer una select asi:
Código:
$inputsearch=discount (el input que usuario introduce)
select * from tabla where shop_info like '%"$inputsearch"%'
O como esta usando comodines:
Código:
$inputsearch=disco* (el input que usuario introduce)
select * from tabla where shop_info like '%"$inputsearch"%'
Ninguna me devuelve los resultados correctos, y creo que es porque oracle interpreta las comillas dobles como busqueda en modo case sensitive, cuando lo que yo quiero es que realmente busque las coincidencias que encuentre entre comillas dobles, dentro del CLOB...

La prueba de lo que digo es que en el segundo caso de select que he puesto, me lista tambien una clave llamada conditional_discount, cuando no deberia mostrarla, ya que no se buscó por *discount, sino por discount*... no se si me explico bien.

No suelo trabajar mucho con Oracle, ¿alguien sabe si es por las comillas, o sabe alguna otra solucion a esto? Si son las comillas, ¿como puedo entonces buscar con comillas dobles, o escaparlas? He probado con " pero tampoco funciona...

Muchas gracias!
Saludos ozonicos
__________________
Diseño web Barcelona
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 21:08.