webForumDet fria alternativet
Logga in / Bli medlem

UPDATE med ORDER BY och LIMIT

Databaser & SQL

18 svar · 327 visningar · startad av zOLOz

Medlem sedan apr. 200297 inlägg
Trådstart#1

Jag testade att använda ORDER BY och LIMIT i UPDATE-satsen, men det gick inge bra.. jag kollade på mysql.com och det borde gå..
här är min sql-fråga.

UPDATE resultat SET raknasisnitt=1 WHERE tillhor=8 ORDER BY totalt ASC LIMIT 0,20

Medlem sedan juni 200032 967 inlägg
#2

På vilket sätt fungerar det inte?

(Jag är inte säker på att jag förstår vad du vill göra heller, så förklara gärna)

mvh

Medlem sedan apr. 200297 inlägg
#3

när jag kör UPDATE resultat SET raknasisnitt=1 WHERE tillhor=8 ORDER BY totalt ASC LIMIT 0,20 så står det:
MySQL sa:

You have an error in your SQL syntax near 'ORDER BY totalt ASC LIMIT 0,20' at line 1

Medlem sedan juni 200032 967 inlägg
#4

Jag förstår fortfarande inte vad du vill göra, men ska du verkligen ha med ORDER BY och LIMIT :q

Medlem sedan apr. 200297 inlägg
#5

ja.. jag vill inte ändra på alla rader.. den ska ändra på dom 20 fösta raderna..

Medlem sedan dec. 200012 464 inlägg
#6

Finns bara i versionen 3.23

Medlem sedan apr. 200297 inlägg
#7

hur ska man då göra.. uppgradera eller? :)

Medlem sedan apr. 200297 inlägg
#8

iofs så hade jag version 3.23.51

Medlem sedan dec. 200012 464 inlägg
#9

Då borde det fungera. Hur gör du anropet? I php eller?

Medlem sedan apr. 200297 inlägg
#10

ja.. php, så här ser det ut

mysql_query("UPDATE resultat SET raknasisnitt=1 WHERE tillhor=8 ORDER BY totalt ASC LIMIT 0,20");
Medlem sedan dec. 200012 464 inlägg
#11

Nu famlar jag. I syntaxbeskrivningen står det bara

limit # dvs att man kan bara ange ett nummer. Blir det bättre med

UPDATE resultat SET raknasisnitt=1 WHERE tillhor=8 ORDER BY totalt ASC LIMIT 20
Medlem sedan apr. 200297 inlägg
#12

funkade inte

Medlem sedan dec. 200012 464 inlägg
#13

Då vet jag inte. Har du testat med någon senare version?

Medlem sedan apr. 200297 inlägg
#14

ska göra det

Medlem sedan apr. 200297 inlägg
#15

Jag uppgraderade till senaste versionen nu (2.3.55) men det fungerade fortfarande inte. :/

Medlem sedan apr. 200297 inlägg
#16

jag kom iaf på fram till att det skulle vara som du sa, LarsG, att man ska ha LIMIT 20 och inte LIMIT 0,20

Nu klagar den bara på ORDER BY anropet.. i UPDATE syntaxen så står det ju:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2, ...]
[WHERE where_definition]
[ORDER BY ...] <--
[LIMIT #]

så det borde ju fungera

Medlem sedan apr. 200297 inlägg
#17

ingen som vet?

det var nån som nämnde att man kanske måste ha med 'totalt' i SET eller UPDATE grejjen för att man skulle kunna sortera efter 'totalt'

Medlem sedan apr. 200297 inlägg
#18

LarsG, du som är kunnig.. hjälp mig :)

Medlem sedan dec. 200012 464 inlägg
#19

Jag vet inte mer än vad som står i dokumentationen. Jag sökte lite och hittade en sida där det stod att innan 4.0.1 så gick det bara att använda limit i update och inte order by.

390 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
127 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)