SELECT .... WHERE feld IN(@array)...geht das?
Oliver
- perl
Hallo Freunde,
habe folgendes Perl/MySQL - Problemchen:
@array wurde durch DB-Select mit den IDs 5,7 und 9 gefüllt.
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
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
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