Gå til innhold

Utfordring ved å scripte INSERT INTO


Anbefalte innlegg

Jeg leter etter en metode for å søke gjennom en MySQL-db (eventuelt lage en SPSS Syntax, Python script) for å undersøke om en gitt rad (med tilhørende UID) har en verdi av en variabel, og dersom denne verdien ikke finnes, lage en ny rad med denne verdien + UID, helt til hver ID har totalt 12 rader. 

 

 

- Velge ut én UID (f.eks: 200)

 - Sjekke om denne UID-raden har MATCH-rows under 12 (variabel som blir definert en gang per rad)
 - Hvis under 12: INSERT INTO frem til MATCH-rows for UID er 12
 - Hvis ikke: Gå videre til neste UID-rad, kjør samme
 
 
Så langt har jeg funnet ut hva jeg trenger for å legge til rader:
 
INSERT INTO tbnavn (UID, MATCH)
VALUES ('UIDvar', 'MATCHvar', );

Jeg har også klart å definere variabler som kunne blitt brukt i en loop, men jeg sliter litt med å vite hvordan jeg skal ta det videre fordi jeg ikke helt skjønner hvordan resultater fra en SELECT kan bli brukt til å sjekke variabler opp mot hverandre, og på bakgrunn av dette foreta en INSERT INTO. 

 

Halp? 

Endret av nazrm
Lenke til kommentar
Videoannonse
Annonse

Er flere måter å løse dette på, du kan lage en stored procedure og ta i bruk mysql sitt scripting språk. Har ikke brukt dette selv, men her er en guide: http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx

 

Du kan kjøre en insert ala dette

REPLACE INTO tbnavn (UID, MATCH)
VALUES 
    ('UIDvar1', 'MATCHvar1'),
    ('UIDvar2', 'MATCHvar2'),
    ('UIDvar3', 'MATCHvar3'),
    ('UIDvar4', 'MATCHvar4'),
    ('UIDvar5', 'MATCHvar5'),
    ('UIDvar6', 'MATCHvar6'),
    ('UIDvar7', 'MATCHvar7'),
    ('UIDvar8', 'MATCHvar8'),
    ('UIDvar9', 'MATCHvar9'),
    ('UIDvar10', 'MATCHvar10'),
    ('UIDvar11', 'MATCHvar11'),
    ('UIDvar12', 'MATCHvar12');
Hvis UIDvar finnes fra før av blir MATCHvar verdien oppdatert, så lenge MATCHvar er lik den som er i tabellen vil dette bare fylle på til 12 rader.

 

En annen løsning er som du er inne på å bruke ett scripting språk til først å hente ut dataene, så sjekke hvilke rader som mangler og til slutt sette inn de nye.

 

Er nok bedre om du forklarer hvilket (overordnet) problem du prøver å løse i stedet for, da er det enklere å komme opp med en løsning. Er ikke gitt at det du prøver på er den "beste" løsningen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...