FAQ
Hola a todos.

Tengo una duda que no se como resolver, me explico:

Tengo que hacer una select de un campo de una base de datos que se
llama recursos.

el campo recursos puede contener cosas de este tipo:

18;36
18
1,18,36
1;18

El caso es que necesito que me muestre todos los registros donde
aparece el 18 (por ejemplo)

No lo hago con un like porque si pongo 1, me aparecerian los del 18, etc.

me han hablado de expresiones irregulares pero no tengo ni idea.

yo pensaba que podría haber una instrucción que me lea dentro del
campo lo que estoy buscando.

Si alguien tiene a bien ponerme el código se los agradeceré.

Search Discussions

  • David Blanco at Sep 15, 2011 at 10:57 am
    Hola!

    El 15 de septiembre de 2011 12:24, Irantzu Leunda Biskarret <
    irantzu@dosalcubo.net> escribió:

    Tengo que hacer una select de un campo de una base de datos que se
    llama recursos.

    el campo recursos puede contener cosas de este tipo:

    18;36
    18
    1,18,36
    1;18

    El caso es que necesito que me muestre todos los registros donde
    aparece el 18 (por ejemplo)

    No lo hago con un like porque si pongo 1, me aparecerian los del 18, etc.

    me han hablado de expresiones irregulares pero no tengo ni idea.

    yo pensaba que podría haber una instrucción que me lea dentro del
    campo lo que estoy buscando.
    Suponiendo que la base de datos sea MySQL tienes al menos dos opciones:

    1 - Usar expresiones regulares para buscar un patrón en el valor del campo.
    La documentación está aquí:

    http://dev.mysql.com/doc/refman/5.0/es/regexp.html

    2 - Usar un campo de tipo SET. Como parece que los valores se repiten (1,
    18, 36, etc.) es posible que pudieras definir el campo como SET. En campos
    de este tipo se puede buscar mediante la función "FIND_IN_SET" de MySQL.
    Tienes más información aquí:

    http://dev.mysql.com/doc/refman/5.0/es/set.html

    Espero que te haya sido de ayuda.

    Un saludo
  • Marcos García at Sep 15, 2011 at 11:00 am
    pero y si haces un like con %18%?


    *Marcos García*

    marcosgdf@gmail.com




    El 15 de septiembre de 2011 12:57, David Blanco <dablanco@gmail.com>escribió:
    Hola!

    El 15 de septiembre de 2011 12:24, Irantzu Leunda Biskarret <
    irantzu@dosalcubo.net> escribió:

    Tengo que hacer una select de un campo de una base de datos que se
    llama recursos.

    el campo recursos puede contener cosas de este tipo:

    18;36
    18
    1,18,36
    1;18

    El caso es que necesito que me muestre todos los registros donde
    aparece el 18 (por ejemplo)

    No lo hago con un like porque si pongo 1, me aparecerian los del 18, etc.

    me han hablado de expresiones irregulares pero no tengo ni idea.

    yo pensaba que podría haber una instrucción que me lea dentro del
    campo lo que estoy buscando.
    Suponiendo que la base de datos sea MySQL tienes al menos dos opciones:

    1 - Usar expresiones regulares para buscar un patrón en el valor del campo.
    La documentación está aquí:

    http://dev.mysql.com/doc/refman/5.0/es/regexp.html

    2 - Usar un campo de tipo SET. Como parece que los valores se repiten (1,
    18, 36, etc.) es posible que pudieras definir el campo como SET. En campos
    de este tipo se puede buscar mediante la función "FIND_IN_SET" de MySQL.
    Tienes más información aquí:

    http://dev.mysql.com/doc/refman/5.0/es/set.html

    Espero que te haya sido de ayuda.

    Un saludo
  • Félix Horro Pita at Sep 15, 2011 at 11:08 am

    On 15/09/11 12:24, Irantzu Leunda Biskarret wrote:
    el campo recursos puede contener cosas de este tipo:

    18;36
    18
    1,18,36
    1;18

    El caso es que necesito que me muestre todos los registros donde
    aparece el 18 (por ejemplo)

    Suponiendo MySQL, algo como:

    SELECT * FROM tabla WHERE recursos REGEXP '[[:<:]]18[[:>:]]';


    Tienes la referencia en:

    http://dev.mysql.com/doc/refman/5.0/en/regexp.html


    Un saludo.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedSep 15, '11 at 10:24a
activeSep 15, '11 at 11:08a
posts4
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase