[mySQL] abfrage synthax für verkettete liste



  • meine tabelle sieht wie folgt aus:

    +-----------+------------+------+-----+---------+----------------+
    | Field     | Type       | Null | Key | Default | Extra          |
    +-----------+------------+------+-----+---------+----------------+
    | t_index   | int(11)    |      | PRI | NULL    | auto_increment |
    | n_index   | int(4)     |      |     | 0       |                |
    | t_field_1 | tinyint(4) |      |     | 0       |                |
    | t_field_2 | tinyint(4) |      |     | 0       |                |
    | t_field_3 | tinyint(4) |      |     | 0       |                |
    | t_field_4 | tinyint(4) |      |     | 0       |                |
    +-----------+------------+------+-----+---------+----------------+
    

    und soll als beispiel folgende einträge enthalten:

    +---------+---------+-----------+-----------+-----------+-----------+
    | t_index | n_index | t_field_1 | t_field_2 | t_field_3 | t_field_4 |
    +---------+---------+-----------+-----------+-----------+-----------+
    |       1 |       0 |        12 |        34 |        56 |         0 |
    |       2 |       3 |        12 |        12 |        56 |         7 |
    |       3 |       0 |        52 |        45 |         0 |         0 |
    +---------+---------+-----------+-----------+-----------+-----------+
    

    der zweck ist folgender: gespeichert werden indexe auf eine andere tabelle, wobei ich aber vorher nicht weiss, wieviele es sind. ist die anzahl <= 4 ist alles in ordnung. ist sie grösser als 4 wird einfach eine weitere zeile eingefügt und n_index mit dem wert des nächsten index gesetzt.

    meine fragen sind:

    wie muss die synthax aussehen für eine abfrage:

    zeige alle t_field_x einer zeile t_index bis ein feld 0 ist und wenn keines 0 ist lese wieder alle t_field_x aus zeile n_index bis ein feld 0 ist usw.

    das ergebnis müsste demnach sein:

    für row[0] = 12, 34, 56
    für row[1] = 12, 12, 56, 7, 52, 45

    ich komme da nicht weiter - währe klasse wenn mir jemand ein paar tips geben könnte.

    danke !


Anmelden zum Antworten