Oliver: SELECT .... WHERE feld IN(@array)...geht das?

Hallo Freunde,

habe folgendes Perl/MySQL - Problemchen:

  1. @array wurde durch DB-Select mit den IDs 5,7 und 9 gefüllt.

  2. Nun möchte ich in einem weiteren SELECT die ensprechenden Daten abholen, indem ich den Array in die WHERE-Klausel packe

SO FUNKTIONIERT ES:
SELECT name, alter, tel FROM table WHERE id IN('5','7','9')

SO LEIDER NICHT:
SELECT name, alter, tel FROM table WHERE id IN(@array)

Kann mir jemand mit der Syntax weiterhelfen?

Vielen Dank im voraus, ich schraub derzeit mal weiter :-)

Oliver

  1. Hi,

    SELECT name, alter, tel FROM table WHERE id IN(@array)

    MySQL kennt keine PHP-Datenstrukturen; genauer gesagt erfährt es niemals davon. PHP liefert dem DBMS einen String - welcher aus stinknormalen Stringfunktionen erzeugt wurde.

    Sorge also für eine hinreichende Erzeugung.

    Kann mir jemand mit der Syntax weiterhelfen?

    Welche PHP-Funktion ermöglicht es, aus einem Array einen String mit definiertem Trennzeichen (Komma) zu bilden?

    Btw: Wenn Deine Abfrage wirklich auf "id IN ('1', ...)" lautet, hast Du vermutlich für die ID-Spalte den falschen Datentyp gewählt. Sowas sollte ein Ganzzahltyp sein, kein Zeichentyp.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo Oliver,

    SO LEIDER NICHT:
    SELECT name, alter, tel FROM table WHERE id IN(@array)

    Nein, natürlich nicht ;-) Erstelle halt mittels join() einen String, in dem die Zahlen mit
    Kommata voneinander getrennt werden.

    Grüße,
     CK

    --
    So, wie ein Teil ist, ist das Ganze.