![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 02.01.2009
Beiträge: 13
|
Hi, also ich habe folgendes Problem bzw will folgendes machen, in einer Tabelle wird ja bei einem INSERT eine neue noch nie vorkommende zahl benutzt, nun möchte ich aber das in der tabelle ein Feld immer mit 1 beginnt, also: id|platz|... 1223|1|... 1224|2|... nun soll aber wenn die Zeile mit platz->1 gelöscht wird, die 2. zeile nachrücken und der Platz auf 1 gesetzt werden. Gibt es da irgendwie eine Funktion in mysql? gruß |
| | |
| | Nach oben #2 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 3.198
|
Eine ID ist eigentlich genau dafür da, dass sie immer eindeutig bleibt. Was du aber machen kannst, ist, dass du ein update-query zusammenbaust á la: update id = id-1 where id > 1223
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #3 | |
| Neuer Benutzer Registriert seit: 02.01.2009
Beiträge: 13
| Zitat:
Aber das mit dem "UPDATE `wait` = 'platz'-1 ..." würde ja auch da klappen, ich werds erstmal so machen evtl hat ja jemand noch eine Idee der könnte sich dann ja hier noch melden :) gruß | |
| | |
| | Nach oben #5 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 3.198
|
Aber damit immer der älteste Eintrag die kleinste ID hat, muss diese doch irgendwann geändert werden, oder verstehe ich dich (CIX88) falsch?
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #6 |
| Erfahrener Benutzer Registriert seit: 18.03.2005
Beiträge: 696
|
Hmmmm, ich dachte jetzt daran, dass die ID ja meist auto_increment ist. Damit wäre ja automatisch der älteste Eintrag die kleinste ID. Mit dem Platz 1 macht natürlich nur dann Sinn, wenn man die Ausgabe nach der ID sortiert. Also bevor ich ein zusätzliches Query losschicke, würde ich andere Lösungen mir überlegen, was natürlich vom Verwendungsweck abhängt. Nehmen wir an, wir wollen die Plätze nach einen Punktestand ausgeben. z.B. http://www.cix-blog.de/tetris.php Dann schreib ich nicht die ganze Datenbank um :) Sondern lese es so, dass die höchste Punktzahl oben ist, was dann Platz 1 bedeuten würde. Ungefähr so hatte ich das gemeint. |
| | |
| | Nach oben #7 |
| Neuer Benutzer Registriert seit: 02.01.2009
Beiträge: 13
|
Ja bei einer Rangliste wäre es ja einfach, einfach die Zeilen der Reihenfolge nach auslesen und die dementsprechende Zahl davorsetzen. Ich brauch aber jeweils nur eine Zeile. Das ganze wird eine Warteschlange was ich natürlich machen könnte wäre ne While schleife und dann halt hochzählen bis der entsprechende Eintrag kommt. gruß |
| | |
| | Nach oben #8 |
| Erfahrener Benutzer Registriert seit: 18.03.2005
Beiträge: 696
|
Jo bei der Schleife haste dann aber etliche Updates-Querys ... Vielleicht könnte mna das aud 2 Querys beschränken. Ein Query müsste dazu die älteste ID auf Platz 1 setzen, wobei Platz dann INT ist. Danach ein Query was (sortiert nach ID oder so) was dann INT hochzählt. Mein Gedanke irgenwie sowas wie: Code: UPDATE tabelle AS t SET t.platz = 1 + (SELECT platz FROM tabelle ORDER BY id ASC ) |
| | |
| | Nach oben #9 |
| Neuer Benutzer Registriert seit: 02.01.2009
Beiträge: 13
| ne ohne update-Querys direkt ausgeben nur würde dann bei jedem Aufruf halt die komplette Tabelle durchgegangen werden. Ich weiß halt nur nich in wie weit das nachher auf die Performance geht... sollte fürn anfang aber auf jedenfall reichen. PHP-Code: |
| | |
| | Nach oben #11 | |
| Neuer Benutzer Registriert seit: 02.01.2009
Beiträge: 13
| Zitat:
gruß Geändert von mira (17.04.2009 um 23:13 Uhr) | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| MySQL RegExp nächste Zeile | Sekundentakt | Datenbanken | 1 | 07.03.2009 15:45 |
| MySQL 5.1 kommt in die Beta-Phase | Ben | Nachrichten | 1 | 02.03.2006 14:31 |
| MySQL: Abfrage aus zweiter Tabelle. | Sebastian | PHP-Programmierung | 6 | 16.12.2005 00:01 |
| MySQL Datasets nach HSQLDB exportieren | jfreak | Enterprise Java | 0 | 16.11.2005 20:01 |
| [SQL] Zufallsdatensatz auslesen - MySQL 3.23 | Ben | Tutorials | 0 | 16.03.2005 00:06 |