Select mit Suche in BLOB?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Select mit Suche in BLOB?

    Hallöchen,

    Ich versuche eine Liste mit allen Jobs einer Person aus meiner Datenbank herauszukriegen.

    Ich hatte mir das eigentlich so vorgestellt:
    --
    SELECT job.name FROM job, person WHERE person.id=5 AND job.id IN person.job
    --
    Geht aber irgendwie nich.. ich bin mir auch nicht sicher, ob der IN operator für Strings oder für subselects gilt =)

    Ahja, meine datenbank sieht wie folgt aus:

    2 tabellen, person und job.

    job.name: tinytext, die job bezeichnung

    job.id: tinyint, die id des jobs (primary key)

    person.job: die jobs der person, laut phpmyadmin vom typ "blob". wenn ich einfach mal person.jobs ausgebe, dann kommt z.b. "1,5,7" oder "12" - scheint also eine komma-liste aus job-ids zu sein.

    person.id: tinyint, die id der person (primary key)

    Wäre für jegliche ideen dankbar..
    .stoffman at web dot de

  • #2
    Re: Select mit Suche in BLOB?

    Original geschrieben von flop
    Wäre für jegliche ideen dankbar..
    wie wär's, wenn du dir erst mal ein vernünftiges datenmodell überlegst?

    person.job: die jobs der person, laut phpmyadmin vom typ "blob". wenn ich einfach mal person.jobs ausgebe, dann kommt z.b. "1,5,7" oder "12" - scheint also eine komma-liste aus job-ids zu sein.
    wer solche werte in einem BLOB ablegt, hat von datenbankdesign vermutlich noch so gut wie gar nichts verstanden.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich weis, daß das mit nem enum oder so besser geklappt hätte, aber so sieht die datenbank nun mal aus... bzw. Typo3 legt sie standardmäßig so an. Ausserdem laufen hier schon andere sachen, die diese Tabellen in ihrer jetzigen form benötigen..... Änderungen am DB design stehen also nicht zur Deabatte.

      Ahja, wie setzt man in mysql einen string zusammen....?
      Hab mir überlegt es könnte so gehen:
      --
      ...WHERE ... person.job = job.id
      OR person.job LIKE job.id+',%'
      OR person.job LIKE '%,'+job.id
      OR person.job LIKE '%,'+job.id+',%'
      --

      das plus zeichen soll beispielhaft die strings concattenieren, denn man unterscheidet ja eigentlich nur 4 fälle:
      --
      job = gesuchte id
      job = kommaliste mit gesuchter id am anfang
      job = kommaliste mit gesuchter id am ende
      job = kommaliste mit gesuchter id in der mitte
      --

      die mit obigen beispiel alle abgedeckt wären.... müste nur wissen, wie ich strings verbinde....

      wäre für jegliche *konstruktiven* ideen dankbar...
      .stoffman at web dot de

      Kommentar


      • #4
        Original geschrieben von flop
        müste nur wissen, wie ich strings verbinde....
        entweder im mysql-manual im kapitel über stringfunktionen nachschlagen - oder aber, strings schon vorher (in PHP) zusammensetzen und dann in die query einfügen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Re: Re: Select mit Suche in BLOB?

          Original geschrieben von wahsaga
          wer solche werte in einem BLOB ablegt, hat von datenbankdesign vermutlich noch so gut wie gar nichts verstanden.
          bei uns gibt es ein Sprichwort, ähm ... ich versuch' mal kurz zu übersetzen:

          Fleiß + Unwissen = Chaos bzw. Zerstörung

          Kommentar


          • #6
            Re: Re: Re: Select mit Suche in BLOB?

            Original geschrieben von asp2php
            Fleiß + Unwissen = Chaos bzw. Zerstörung
            OffTopic:
            bei max 127 einträgen in der db kann´s so schlimm ned werden
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar

            Lädt...
            X