dedlfix: Problem mit GROUP_CONCAT in Subquery

Beitrag lesen

Tach!

SELECT

id,
  parent,
  pfad,
  titel
FROM Struktur
  WHERE id IN(IF((SELECT parent FROM Struktur WHERE id = "[code lang=php]. intval($currentPage['id']) .


>     (SELECT GROUP\_CONCAT(id) AS id FROM Struktur WHERE parent = "`. intval($currentPage['id']) .`{:.language-php}"),  
>     (SELECT GROUP\_CONCAT(id) AS id FROM Struktur WHERE parent = "`. intval($currentPage['parent']) .`{:.language-php}")))  
>   ORDER by sortierer ASC"[/code]  
  
GROUP\_CONCAT() liefert einen String zurück. Der wird komplett als ein Parameter von IN() angesehen. Du willst jedoch, dass er als kommaseparierte Liste angesehen wird. Das geschieht aber nicht, weil das bedeuten würde, dass Daten als Code interpretiert werden müssten. Wenn du die Werte einzeln verarbeitbar haben willst, muss die Query eine Ergebnismenge zurückliefern.  
  
Ob du damit ans Ziel kommst oder ob es bessere Varianten für die eigentliche Aufgabenstellung gibt, habe ich nicht untersucht.  
  
  
dedlfix.