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:
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.a:1:{s:8:"discount";s:21:"descuento de 20 euros";}
Al hacer una select asi:
Código:
O como esta usando comodines:$inputsearch=discount (el input que usuario introduce) select * from tabla where shop_info like '%"$inputsearch"%'
Código:
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...$inputsearch=disco* (el input que usuario introduce) select * from tabla where shop_info like '%"$inputsearch"%'
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