Avatar billede sjh Nybegynder
02. december 2004 - 20:31 Der er 16 kommentarer og
1 løsning

Update med In

Jeg vil godt opdater alle på en gang, kan man det??

Jeg har prøvet såadn..

"UPDATE orderby_test SET Orderby = IN (1,2,3,4) WHERE ID = IN (2,1,4,3)"


Så det kommer til at se sådan ud (de skal opdateres efter ID)

Orderby = 1 (ID 2)
Orderby = 2 (ID 1)
Orderby = 3 (ID 4)
Orderby = 4 (ID 3)
Avatar billede arne_v Ekspert
02. december 2004 - 20:33 #1
Det kan du ikke.
Avatar billede arne_v Ekspert
02. december 2004 - 20:35 #2
Det nemmeste er en løkke i applikationen.

Hvis de to sekvenser af tal evt. lå i en tabel kunne du lave en UPDATE med en JOIN.
Avatar billede sjh Nybegynder
02. december 2004 - 20:36 #3
kan man ikke gøre det som et slaks array ??
Avatar billede arne_v Ekspert
02. december 2004 - 20:37 #4
SQL har ikke arrays ...

Det tætteste må være en tabel af HEAP type.
Avatar billede sjh Nybegynder
02. december 2004 - 21:24 #5
er det fordi det er MySQL at man ikke kan??

Jeg mener at ha hørt at man kan gøre det med ADO.command eller sådan noget..
Avatar billede arne_v Ekspert
02. december 2004 - 21:39 #6
Jeg har ihvertfald aldrig hørt om det ...
Avatar billede arne_v Ekspert
02. december 2004 - 21:40 #7
Jeg er ret sikker på at MySQL ikke kan.
Avatar billede arne_v Ekspert
02. december 2004 - 21:40 #8
Eneste mulighed er hvis tallene er lige lange så man kan lave noget snedigt string manipulation.
Avatar billede sjh Nybegynder
02. december 2004 - 21:42 #9
hvis man kunne lave noget i den stil.. (Altså count + 1)

"UPDATE orderby_test SET Orderby = (count + 1) WHERE ID = IN (2,1,4,3)"
Avatar billede sjh Nybegynder
02. december 2004 - 21:44 #10
men problemet er nok at den ikke vil tage IN (2,1,4,3) i den rækefølge
Avatar billede sjh Nybegynder
02. december 2004 - 23:22 #11
findes der så ikke en måde hvor man kan få SQL-Serveren til at udfør alle dem her i et hug.??


"UPDATE orderby_test SET Orderby = 1 WHERE ID = 2; UPDATE orderby_test SET Orderby = 2 WHERE ID = 1; UPDATE orderby_test SET Orderby = 3 WHERE ID = 4";
Avatar billede arne_v Ekspert
03. december 2004 - 00:27 #12
Jeg mener at MySQL i nogen sammenhæng accepterer den konstruktion.

Afhænger af om API'er understøtter det. Hvad bruger du ?

PHP MySQL ? ASP ADO ? ASP.NET ADO.NET ? Java/JSP JDBC ? C++ MySQL ?
Avatar billede sjh Nybegynder
03. december 2004 - 00:45 #13
PHP 4.3.5 - MySQL -> 4.17
Avatar billede arne_v Ekspert
03. december 2004 - 08:13 #14
Prøv og fyr den af i et mysql_query kald og se om den virker.
Avatar billede hmortensen Nybegynder
03. december 2004 - 09:45 #15
Ellers ligger du dem bare i et array og køre arrayet igennem i en løkke, som kører din query.
Avatar billede sjh Nybegynder
03. december 2004 - 13:42 #16
det virker sq ikke :( så må jeg bare bruge den gamle metode... jeg var bare sikker på at man kunne gøre det på en smart måde..

arne_v > smid et svar så er der point.. :-)
Avatar billede arne_v Ekspert
03. december 2004 - 14:21 #17
ok
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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