FAQ
hola,

tengo una tabla que almacena unas url y antes de almacenar otra quiero buscar si se encuentra ya. he pensado que como puede haber url muy largas hacer un campo que sea el md5 de la url y buscar por md5, pero un dia lei en alguna web o libro que mysql tiene algun registro que guarda como md5 para hacer busquedas rapidas y claro, antes de reinventar la rueda quisiera saber si existe algo asi.

He preguntado en listas de MySQL, pero no han sabido contestarme, asi que por eso lo pongo aqui, quizas alguien pueda hacerme una recomendacion. muchas gracias

saludos de antonio


---------------------------------

Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.

Search Discussions

  • Gerardo at Sep 22, 2007 at 1:41 am
    Hola Antonio, como te va?

    Sabes que habia leido tu post y pense un par de veces en una soluciòn
    distinta a tu problema, y me parecia que era la mejor, pero igual seguia
    pensando.

    Despues cuando me estaba bañando me di cuenta, Eureka!, que si pones el
    campo url como UNIQUE, MySql no te va a permitir poner una URL duplicada, y
    no tenes que buscar si existe, solo tenes que tratar a lo sumo el error o
    warning, no se a que nivel esta, que te tire mysql.

    Creo que esa es la mejor opción.

    Decime que te parece.


    On 9/21/07, Potxoka Pony bravo wrote:


    hola,

    tengo una tabla que almacena unas url y antes de almacenar otra quiero
    buscar si se encuentra ya. he pensado que como puede haber url muy largas
    hacer un campo que sea el md5 de la url y buscar por md5, pero un dia lei en
    alguna web o libro que mysql tiene algun registro que guarda como md5 para
    hacer busquedas rapidas y claro, antes de reinventar la rueda quisiera saber
    si existe algo asi.

    He preguntado en listas de MySQL, pero no han sabido contestarme, asi que
    por eso lo pongo aqui, quizas alguien pueda hacerme una recomendacion.
    muchas gracias

    saludos de antonio


    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.


    --
    Gerardo Benitez

    ----------------------------------------------------------------------
    mercadoagil.com.ar

    webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------
  • Potxoka Pony bravo at Sep 22, 2007 at 11:13 am
    Hola,

    Yo lo que tengo que hacer es que se coge una url y se inserta en una tabla, pero para no engordar la tabla lo que quiero saber si esta insertada ya y si es asi que id tiene en esa tabla para vincularla en otra tabla. vamos, que con un select trato dos tablas, una que tiene url + id(auto numerico) y otra id (autonumerico)+id_url(identificador de la url)+fecha
    Con el tratamiento del error se podria devolver el id? asi si que podria capturarlo y insetarlo en la otra tabla. muchas gracias

    saludos de antonio


    Hola Antonio, como te va?

    Sabes que habia leido tu post y pense un par de veces en una soluciòn
    distinta a tu problema, y me parecia que era la mejor, pero igual seguia
    pensando.

    Despues cuando me estaba bañando me di cuenta, Eureka!, que si pones el
    campo url como UNIQUE, MySql no te va a permitir poner una URL duplicada, y
    no tenes que buscar si existe, solo tenes que tratar a lo sumo el error o
    warning, no se a que nivel esta, que te tire mysql.

    Creo que esa es la mejor opción.

    Decime que te parece.



    On 9/21/07, Potxoka Pony bravo wrote:


    hola,

    tengo una tabla que almacena unas url y antes de almacenar otra quiero
    buscar si se encuentra ya. he pensado que como puede haber url muy largas
    hacer un campo que sea el md5 de la url y buscar por md5, pero un dia lei en
    alguna web o libro que mysql tiene algun registro que guarda como md5 para
    hacer busquedas rapidas y claro, antes de reinventar la rueda quisiera saber
    si existe algo asi.

    He preguntado en listas de MySQL, pero no han sabido contestarme, asi que
    por eso lo pongo aqui, quizas alguien pueda hacerme una recomendacion.
    muchas gracias

    saludos de antonio


    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.



    --
    Gerardo Benitez

    ----------------------------------------------------------------------
    mercadoagil.com.ar

    webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------






    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.
  • Potxoka Pony bravo at Sep 22, 2007 at 2:12 pm
    Hola,

    Lo que yo tengo es que meter la url en una tabla y el id de esa url (que es autonumerico) insertarlo en otra tabla para vincularlas entre si (no tengo mucha idea de como realizar esto.

    Este es mas o menos lo que intento:

    # URL #
    id ------ Identificador autonumerico
    url ----- Dirección URL

    # URL_DATOS #
    id ------ Identificador autonumerico
    id_url -- Identificador de la tabla URL
    fecha --- TimeStamp del ingreso

    Ejemplo:
    # URL #
    id ------ 1
    url ----- http://www.yahoo.es
    ---------
    id ------ 2
    url ----- http://www.google.es

    # URL_DATOS #
    id ------ 1
    id_url -- 1
    fecha --- 20-09-2007 00:02:20
    ---------
    id ------ 2
    id_url -- 2
    fecha --- 20-09-2007 10:02:20
    ---------
    id ------ 3
    id_url -- 1
    fecha --- 21-09-2007 09:08:31

    muchas gracias

    saludos de antonio
    ----------------------------------------------------
    Hola,

    Que tal si pruebas con la sentencia UPDATE IGNORE INTO de MySQL, con ella, puedes lanzar el update contra la tabla donde almacenas los URL asociados a una fecha, como funciona?, si el registro existe, le hace update (con la nueva fecha de adición, por ejemplo), y si no existe, entonces lo inserta (como si de un INSERT se tratara).

    Avisame si es importante saber en uno u otro caso, determinar el id del URL que fue modificado/insertado, para seguir ayudandote, y si ya con esto funciona.

    Saludos

    Leo Espejo

    On 9/22/07, Potxoka Pony bravo wrote:

    Hola,

    Yo lo que tengo que hacer es que se coge una url y se inserta en una tabla, pero para no engordar la tabla lo que quiero saber si esta insertada ya y si es asi que id tiene en esa tabla para vincularla en otra tabla. vamos, que con un select trato dos tablas, una que tiene url + id(auto numerico) y otra id (autonumerico)+id_url(identificador de la url)+fecha
    Con el tratamiento del error se podria devolver el id? asi si que podria capturarlo y insetarlo en la otra tabla. muchas gracias

    saludos de antonio


    Hola Antonio, como te va?

    Sabes que habia leido tu post y pense un par de veces en una soluciòn
    distinta a tu problema, y me parecia que era la mejor, pero igual seguia
    pensando.

    Despues cuando me estaba bañando me di cuenta, Eureka!, que si pones el
    campo url como UNIQUE, MySql no te va a permitir poner una URL duplicada, y
    no tenes que buscar si existe, solo tenes que tratar a lo sumo el error o
    warning, no se a que nivel esta, que te tire mysql.

    Creo que esa es la mejor opción.

    Decime que te parece.



    On 9/21/07, Potxoka Pony bravo wrote:


    hola,

    tengo una tabla que almacena unas url y antes de almacenar otra quiero
    buscar si se encuentra ya. he pensado que como puede haber url muy largas
    hacer un campo que sea el md5 de la url y buscar por md5, pero un dia lei en
    alguna web o libro que mysql tiene algun registro que guarda como md5 para
    hacer busquedas rapidas y claro, antes de reinventar la rueda quisiera saber
    si existe algo asi.

    He preguntado en listas de MySQL, pero no han sabido contestarme, asi que
    por eso lo pongo aqui, quizas alguien pueda hacerme una recomendacion.
    muchas gracias

    saludos de antonio


    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.



    --
    Gerardo Benitez

    ----------------------------------------------------------------------
    mercadoagil.com.ar

    webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------






    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.




    --
    Saludos,

    Leo Espejo


    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.
  • Leo Espejo at Sep 22, 2007 at 4:57 pm
    Hola,

    Existe una funcion en MySQL, que te devuelve el id, de la última inserción
    realizada en una tabla llamada, sin embargo, si lo usamos en compañía del
    UPDATE IGNORE INTO, me sospecho (porque no lo he probado), que te debe
    devolver el id en el caso de que haga INSERT (es decir, cuando no encuentre
    registro al que hacer UPDATE), tendrás que probar este ultimo detalle, y lo
    tendriamos listo, y robusto, apoyandonos en funciones de MySQL

    1- "Insertas" URLs usando UPDATE IGNORE INTO

    UPDATE IGNORE INTO tabla1(url) SET url = $url (donde $url es la que estas
    recibiendo como entrada)
    Si el URL existe, hace UPDATE, si no existe hace INSERT (te confieso, que yo
    pensaba que la fecha de inserción, quedaba en esta tabla, de lo contrario,
    podria haber sugerido otra opción.

    1.1 (opcional) Una segunda manera de hacer esto, es usar INSERT IGNORE INTO,
    esto funciona diferente, si el URL fuese el PK de la tabla, insertaria el
    URL, únicamente en caso que no exista previamente, de lo contrario, hace el
    insert, fijate que en caso que el url exista, no devuelve error.

    2- usando mysql_insert_id($conexion) obtienes el id generado en el ultimo
    INSERT, donde $conexion es tu conexion a la base de datos

    Espero que te resulte de utilidad

    Saludos,

    Leo Espejo
    On 9/22/07, Potxoka Pony bravo wrote:

    Hola,

    Lo que yo tengo es que meter la url en una tabla y el id de esa url (que
    es autonumerico) insertarlo en otra tabla para vincularlas entre si (no
    tengo mucha idea de como realizar esto.

    Este es mas o menos lo que intento:

    # URL #
    id ------ Identificador autonumerico
    url ----- Dirección URL

    # URL_DATOS #
    id ------ Identificador autonumerico
    id_url -- Identificador de la tabla URL
    fecha --- TimeStamp del ingreso

    Ejemplo:
    # URL #
    id ------ 1
    url ----- http://www.yahoo.es
    ---------
    id ------ 2
    url ----- http://www.google.es

    # URL_DATOS #
    id ------ 1
    id_url -- 1
    fecha --- 20-09-2007 00:02:20
    ---------
    id ------ 2
    id_url -- 2
    fecha --- 20-09-2007 10:02:20
    ---------
    id ------ 3
    id_url -- 1
    fecha --- 21-09-2007 09:08:31

    muchas gracias

    saludos de antonio
    ----------------------------------------------------
    Hola,

    Que tal si pruebas con la sentencia UPDATE IGNORE INTO de MySQL, con ella,
    puedes lanzar el update contra la tabla donde almacenas los URL asociados a
    una fecha, como funciona?, si el registro existe, le hace update (con la
    nueva fecha de adición, por ejemplo), y si no existe, entonces lo inserta
    (como si de un INSERT se tratara).

    Avisame si es importante saber en uno u otro caso, determinar el id del
    URL que fue modificado/insertado, para seguir ayudandote, y si ya con esto
    funciona.

    Saludos

    Leo Espejo

    On 9/22/07, Potxoka Pony bravo wrote:

    Hola,

    Yo lo que tengo que hacer es que se coge una url y se inserta en una
    tabla, pero para no engordar la tabla lo que quiero saber si esta insertada
    ya y si es asi que id tiene en esa tabla para vincularla en otra tabla.
    vamos, que con un select trato dos tablas, una que tiene url + id(auto
    numerico) y otra id (autonumerico)+id_url(identificador de la url)+fecha
    Con el tratamiento del error se podria devolver el id? asi si que podria
    capturarlo y insetarlo en la otra tabla. muchas gracias

    saludos de antonio


    Hola Antonio, como te va?

    Sabes que habia leido tu post y pense un par de veces en una soluciòn
    distinta a tu problema, y me parecia que era la mejor, pero igual seguia
    pensando.

    Despues cuando me estaba bañando me di cuenta, Eureka!, que si pones el
    campo url como UNIQUE, MySql no te va a permitir poner una URL duplicada,
    y
    no tenes que buscar si existe, solo tenes que tratar a lo sumo el error o
    warning, no se a que nivel esta, que te tire mysql.

    Creo que esa es la mejor opción.

    Decime que te parece.



    On 9/21/07, Potxoka Pony bravo wrote:


    hola,

    tengo una tabla que almacena unas url y antes de almacenar otra quiero
    buscar si se encuentra ya. he pensado que como puede haber url muy largas
    hacer un campo que sea el md5 de la url y buscar por md5, pero un dia lei en
    alguna web o libro que mysql tiene algun registro que guarda como md5 para
    hacer busquedas rapidas y claro, antes de reinventar la rueda quisiera saber
    si existe algo asi.

    He preguntado en listas de MySQL, pero no han sabido contestarme, asi que
    por eso lo pongo aqui, quizas alguien pueda hacerme una recomendacion.
    muchas gracias

    saludos de antonio


    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.



    --
    Gerardo Benitez

    ----------------------------------------------------------------------
    mercadoagil.com.ar

    webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------






    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.




    --
    Saludos,

    Leo Espejo


    ---------------------------------

    Sé un Mejor Amante del Cine
    ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.


    --
    Saludos,

    Leo Espejo

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedSep 21, '07 at 4:01p
activeSep 22, '07 at 4:57p
posts5
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase