Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

shade1990

Frischling

  • »shade1990« ist der Autor dieses Themas

Beiträge: 31

Beruf: Junior Developer

  • Private Nachricht senden

1

29.05.2018, 12:35

SQL Doppelte ID's

Hallo Cumminuty,

ich habe da ein Problem mit doppelten bzw mehrern gliechen ID's.

Ich habe eine Datenbank mit doppelten bzw mehrern gliechen ID's.
Diese möchte ich NICHT durch neue ID's ersetzen, sondern mit einem Zähler versehen und so eine Eindeutigkeit herstellen.
Mein Plan ist folgender, die alten ID's behalten und am Ende ein Zähler anfügen.

Bsp.
ID: | Anzahl:
8240 | 4
19625 | 46
34675 | 120
38804 | 1

gewünschtets Ergebnis:
8240001
8240002
8240003
8240004

19625001
19625002
19625003
usw.
19625046

34675001
usw.
34675050
usw.
34675120

38804001

8240xxx
19625xxx
34675xxx
38804xxx
-> xxx soll dann der Zähler sein, der dann für jede ID von vorne anfängt zu zählen.

Wie kann man das mit SQL realisieren bzw. kann man das überhaupt realisieren? :hmm:


Danke für die Hilfe, Gruß
Shade1990

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

29.05.2018, 12:44

Das geht bestimmt mit reinem SQL, wenn du dir eine Prozedur dafür programmierst. Das hier ist aber eine einmalige Sache, oder? Wenn du dich noch nicht mit SQL-Prozeduren auskennst, wäre es wahrscheinlich schneller erledigt, wenn du das mit der Programmiersprache deiner Wahl umsetzt. Im Prinzip musst du ja nur durch jede Zeile laufen und dann entsprechend der Anzahl neue Einträge (in eine neue Tabelle) einfügen.

3

29.05.2018, 13:22

In mySQL sowas in der Art, für jede ID:

Quellcode

1
2
SET @cnt := 0;
UPDATE yourtable SET new_id = CONCAT (old_id, LPAD(@cnt := @cnt+1,3,'0')) WHERE old_id = 8240


Wenns mehr, oder unbekannte IDs sind, siehe Davids Post. ;)
fka tm

Werbeanzeige