Avatar billede super_bedst Novice
06. marts 2018 - 01:25 Der er 7 kommentarer og
1 løsning

UPDATE query med variabel limit

Hejsa
jeg ønsker at udskifte alle data i en kolonne med nye data, UNDTAGEN DEN 1 RÆKKE.

db eks
col1 col2 col3
1.a  2.a  3.a
1.b  2.b  3.b
1.c  2.c  3.c

skal blive til
col1 col2 col3
1.a  2.a  3.a
1.b  x    3.b
1.c  x      3.c

Havde tænkt at tælle linier, og derefter bruge denne variabel-1 som limit, men syntes ikke jeg kan dreje hvordan det skal strikkes sammen..

kom med et bud.
Avatar billede super_bedst Novice
06. marts 2018 - 01:27 #1
databasen er en MySQL :-)
Avatar billede arne_v Ekspert
06. marts 2018 - 01:55 #2
UPDATE tbl SET col2 = x WHERE col1 <> 1.a

?
Avatar billede arne_v Ekspert
06. marts 2018 - 01:56 #3
UPDATE tbl SET col2 = x WHERE col1 NOT IN (SELECT MIN(col1) FROM tbl)

?
Avatar billede super_bedst Novice
06. marts 2018 - 06:54 #4
Hej Arne, tak for dit bud, når jeg kører linien i sql command før jeg følgende fejl på sidste svar:
Error in query (1093): Table 'tbl' is specified twice, both as a target for 'UPDATE' and as a separate source for data
Data i '1.a' ændrer sig, da nyeste linie er øverst.
Avatar billede jakobdo Ekspert
06. marts 2018 - 08:44 #5
Hvad er kriteriet for linje 1 der ikke skal røres ?
Er det nyeste række eller er det 1.a som arne_v forsøger med i hans sql ?
For ellers burde #2 virke.
Avatar billede super_bedst Novice
06. marts 2018 - 09:16 #6
Ja, havde tænke det bare var et spørgsmål om sortering inden.
For at være lidt mere præcis, er col1 en timestsmp, og den række der ikke skal ændres er den nyest dato.
Avatar billede michael_stim Ekspert
06. marts 2018 - 10:58 #7
I stedet for at köre en UPDATE så lav lige en SELECT först, med samme kriterier.
#4
Din tabel hedder nok ikke tbl.
Og husk at copy/paste herind hvad det er du pröver (din SQL-string).
Avatar billede super_bedst Novice
06. marts 2018 - 16:10 #8
Hej og tak, med jeres input fandt jeg en løsning dre virkede :
set @test = (SELECT `Modtaget` FROM `events` ORDER BY `Modtaget` DESC LIMIT 1);
UPDATE `events`  SET `AdresseVej`='',`AdresseNr`='',`AdresseSted`='',`GPS`='' WHERE `Modtaget` <> @test
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester