Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Amateurfilm-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Marcus Gräfe

Administrator

  • »Marcus Gräfe« ist männlich
  • »Marcus Gräfe« ist der Autor dieses Themas

Beiträge: 5 943

Dabei seit: 14. August 2002

Wohnort: Düsseldorf

Hilfreich-Bewertungen: 565

  • Private Nachricht senden

1

Samstag, 29. Januar 2005, 15:27

MySQL 4.1.8: Ist folgendes Vorhaben per Update-Anweisung möglich?

Es geht um die Datenbank einer Boardsoftware (in dem Fall WBB lite 1.0.1). Folgendes möchte ich:

Es gibt in einer Tabelle, nennen wir sie einfach "boards", die Felder "id", "isboard", "parentid" und "childlist".

id ist die ID des Unterforums, isboard gibt an, ob es sich um ein Board (1) oder um eine Kategorie (0) handelt. parentid gibt eine boardid einer Kategorie an. Nun geht es darum, bei den Boards, welche Kategorien sind, das Feld childlist zu füllen. Es handelt sich dabei um ein String Feld, in dem die IDs durch Komma (,) getrennt aufgeführt werden.

Nun suche ich nach einer SQL Anweisung, mit der dies möglich ist.

Also etwa so:

update boards set childlist = (select boardid || "," from boards where isboard = 1 and parentid = boardid) where isboard = 0;

Nur funktioniert diese Anweisung (verständlicherweise?) überhaupt nicht.

Hat jemand eine Idee, wie ich das realisieren könnte?

Windstiller

unregistriert

2

Samstag, 29. Januar 2005, 16:05

Hoffe ich verstehe dich richtig :D
Erstmal die Tabellen erstellen (Wenn nicht schon getan).
<pre>
CREATE TABLE `bb1_boards` (
`boardid` int(11) unsigned NOT NULL auto_increment,
`isboard` tinyint(1) NOT NULL default '0',
`parentid` int(11) unsigned NOT NULL default '0',
`childlist` text collate latin1_general_ci NOT NULL,
</pre>

Dann den Inhalt erstellen

<pre>
INSERT INTO `bb1_boards` VALUES (1, 0, 0, 0);</pre>

Hoffe das Ich dein Problem richtig verstanden.

Marcus Gräfe

Administrator

  • »Marcus Gräfe« ist männlich
  • »Marcus Gräfe« ist der Autor dieses Themas

Beiträge: 5 943

Dabei seit: 14. August 2002

Wohnort: Düsseldorf

Hilfreich-Bewertungen: 565

  • Private Nachricht senden

3

Samstag, 29. Januar 2005, 16:11

Nein, du hast mich wohl leider nicht richtig verstanden. Also, die Tabelle existiert natürlich schon und sie hat auch schon Inhalt! Die ganzen Unterforen und Kategorien sind bereits eingetragen. Nun möchte ich einzig und allein das Feld "childlist" in jedem Datensatz, welcher eine Kategorie darstellt (isboard=0), füllen. Und zwar mit einer Komma-separierten Liste aller Board-IDs, bei denen isboard=1 und parentid = der Kategorie-Board-ID ist.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Marcus Gräfe« (29. Januar 2005, 16:12)


Marcus Gräfe

Administrator

  • »Marcus Gräfe« ist männlich
  • »Marcus Gräfe« ist der Autor dieses Themas

Beiträge: 5 943

Dabei seit: 14. August 2002

Wohnort: Düsseldorf

Hilfreich-Bewertungen: 565

  • Private Nachricht senden

4

Samstag, 29. Januar 2005, 18:16

Hat sich erledigt, habe es nun völlig anders gelöst und es funktioniert so. Falls aber doch jemand eine SQL-Lösung findet, so möge derjenige diese posten.

Ähnliche Themen

Social Bookmarks