Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[SQL] Vorige record

Pagina: 1
Acties:

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 25-11 14:07
Ik heb een databasetabel die heel krom is opgebouwd, omdat de ID's niet helemaal auto_increment zijn, het werkt namelijk met 2 Id's, met eerste deel is een foreignkey naar een andere tabel, gevolgd door een "_", gevolgd door de primarykey van de huidige tabel, maar, niet unique.

Dus je kan bijv "id" 123_133 hebben, maar ook 123_111 en 131_133 en 131_111 hebben. Het eerste deel reffereert dus naar een andere tabel, en het tweede deel is het unieke ID bij de foreignkey. Nouja, heel vies dus.

Nou wil ik sorteren op dat ID, en dan de vorige record pakken. Er zijn dan eigenlijk 2 mogelijkheden:

- een nieuw veld ID maken, en de huidige "id" opsplitsen naar de foreign key, en het andere deel auto_increment unique maken

- een functie schrijven om met de oude vieze manier door te gaan

Aangezien de database maar wordt uitgebreid, kan ik optie 1 nog niet doen, dus wil ik me gaan focussen op optie 2, een functie schrijven.

Ik kan bijv. doen:

123_111, 111 eruit halen, + of - 1, en dan krijg ik bijv. 123_110 , maar ik weet niet zeker of 123_110 wel bestaat, kan wel een loopje maken, net zolang -1 totdat er een record komt die bestaat, maar dat lijkt me niet zo'n goed idee als er meer dan 100 records per 'foreignkey' zijn. Dus ik wil eigenlijk op de manier zoals LIMIT 111,1 werkt de vorige eruit halen, zo haal je Record nummer 111 er uit.

Hoe krijg ik dus de 'plaats' waar record 123_111 - 1 staat?

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 21-11 07:55

mOrPhie

❤️❤️❤️❤️🤍

Klopt het als ik de aanname maak dat je een next en previous button moet maken oid?
De vraag is dus eigenlijk waarom je de "vorige" moet vinden. Ik krijg namelijk sterk het vermoeden dat je dat in code op moet lossen met (bijvoorbeeld) een linked list om je currency te bepalen.

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • Valkske
  • Registratie: November 2002
  • Laatst online: 29-11 18:04
Auw, pijn! Je gaat je muren van je huis toch ook niet scheef zetten omdat je fundering is scheefgezakt?
Kopieer heel die handel naar een offline ontwikkel omgeving, tabellen aanpassen, software aanpassen, SQL schrijven om de data recht te trekken. En zet op het gepaste moment in het live systeem.
Sorry als ik je hiermee niet veel verder help, maar ik zie dat als enige oplossing waar je geen spijt van hebt achteraf :p

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 25-11 14:07
mOrPhie schreef op dinsdag 04 december 2007 @ 12:06:
Klopt het als ik de aanname maak dat je een next en previous button moet maken oid?
De vraag is dus eigenlijk waarom je de "vorige" moet vinden. Ik krijg namelijk sterk het vermoeden dat je dat in code op moet lossen met (bijvoorbeeld) een linked list om je currency te bepalen.
Klopt, het wordt een Prev en Next voor een fotoalbum.

[edit] Toch maar een nieuw attribuut ID gemaakt.

[ Voor 5% gewijzigd door lennartkocken op 04-12-2007 13:08 ]