09. november 2001 - 18:25
Der er
22 kommentarer og 1 løsning
WHERE id = MAX(id) ??
UPDATE tabel SET felt = felt+1 WHERE id = MAX(id) kan man det? :) hvis ikke, hvad kan man gøre i stedet?
Annonceindlæg fra Lenovo
09. november 2001 - 18:31
#1
UPDATE tabel SET felt = felt+1 WHERE id IN (SELECT MAX(id) FROM tabel)
Slettet bruger
09. november 2001 - 18:34
#2
Så vidt jeg ved kan man vis ikke subselecte med MySQL?? (Det som stigc gør)
09. november 2001 - 18:37
#3
jo med den nye version. :)
09. november 2001 - 18:38
#4
dunno, jeg skal ikke bruge det til noget lige nu, jeg var bare nysgerrig kan man så heller ik sige: UPDATE tblpersoner SET point = point+20 WHERE point>50 ORDER BY point ASC LIMIT 20 kan man det, eller er det helt hen i vejret???
09. november 2001 - 18:39
#5
Desuden bør en sådan manøvre også gøres med transaktionstyring, hvilket den nye version også understøtter.
09. november 2001 - 18:39
#6
hvad med 3.22 er den godnok? hehe
09. november 2001 - 18:40
#7
htx98i17>> Det er jeg ret sikker på man ikke kan!
09. november 2001 - 18:42
#8
hvad gør man så hvis man kun vil updatere de 20 personer som har mindst point?
09. november 2001 - 18:42
#9
altså jeg går ud fra at det er den ORDER BY og LIMIT som du siger ik vil virke
09. november 2001 - 18:43
#10
Den nye version er 4.0
www.mysql.com
09. november 2001 - 18:45
#11
der er ikke subselecte i mysql 4
09. november 2001 - 18:45
#12
Men den er jo stadig kun ude som unstable... jeg for aldrig mit webhotel til at opdatere deres server med en mysql version der ikke er ude i stable hehe tror jeg ihvertfald ikke på :)
Slettet bruger
09. november 2001 - 18:47
#13
OK, tak for tippet...det gør jo livet en del nemmere for os!
09. november 2001 - 18:50
#14
hvad gør man så hvis man kun vil updatere de 20 poster/personer som har mindst point?
09. november 2001 - 18:52
#15
09. november 2001 - 18:55
#16
du laver to SQL\'er Først select du : limit 0,20 order by DESC Så laver du en streng af de id,er på formen $dinstreng = \"id1, id2, id3, ........ \" Så laver du en update med UPDATE tabel SET felt = felt+1 WHERE id IN ($dinstreng)
Slettet bruger
09. november 2001 - 18:55
#17
Det så ud som om at nestede selects (subselect) kommer med i 4.1 udgaven...
09. november 2001 - 18:57
#18
dårligt at man ik kan nøjes med 1 query, hehe, synes da det ville være logisk nok, hehe
09. november 2001 - 19:00
#19
for at vende tilbage til spørgsmålet, så kan man altså KUN lave det med minimum 2 querys ?
09. november 2001 - 19:56
#20
UPDATE tabel SET felt = felt+1 WHERE id = MAX(id) er det helt sort ?? _codeb@se.dk
09. november 2001 - 19:58
#21
nope det kunne man ikke :-) UPDATE hit_hit SET hit=hit+1 WHERE id = MAX(id) MySQL returnerede: Invalid use of group function
09. november 2001 - 20:01
#22
UPDATE hit_hit SET hit=hit+1 WHERE id IN (SELECT MAX(id) FROM hit_hit) MySQL returnerede: You have an error in your SQL syntax near \'SELECT MAX(id) FROM hit_hit)\' MySql ver. 3.23.36 Hvad er den nyeste ?? _codeb@se.dk
09. november 2001 - 20:23
#23
for mig at se må du lave select først hvor du finder den største id og derefter update --- where id = den anden select
Computerworld tilbyder specialiserede kurser i database-management