Enkel update fråga :)

Databaser & SQL

4 svar · 197 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Trådstart#1

Hej allihopa :)

sqlUpdate = "UPDATE tblCriteria SET isSelected = true WHERE CriteriaValue LIKE '" & CriteriaChoice & "'"
		sqlUpdate2 = "UPDATE tblCriteria SET isSelected = false WHERE NOT CriteriaValue  LIKE '" & CriteriaChoice & "'" 

cn.execute(sqlUpdate)
cn.execute(sqlUpdate2)

Kan man slå ihop ovanstående till en sats? Syftet är alltså att sätta alla värden i boolean fältet till "false" förutom det recordset som är aktuellt; det ska sättas till "true".

Nån som vet hur man gör detta..? Ser lite snyggare ut än att ha två separata satser :) (Dessutom verkar det bli lite fel när man kör de tillsammans.. ).

(Jag kör en Access databas för tillfället och variablerna hämtas från en ASP sida).

Medlem sedan dec. 200012 464 inlägg
#2

Iif fungerar så att om uttrycket i första parametern är sant returneras true annars false. (Funktionen iif fungerar enbart i Access/Jet.)

sqlUpdate = "UPDATE tblCriteria SET isSelected = iif (criteriaValue like '" 
& criteriaChoice & "',true,false)"

jag har dock ingen möjlighet att testa detta.

Medlem sedan juni 2000504 inlägg
#3

Oj, oj.. heheh.. nu blev jag imponerad.. det där hade jag aldrig sett förut (fast å andra sidan är det mycket jag inte sett förut :)

Det fungerar ju hur bra som helst.. synd att det inte finns för SQL-server..

Tack så mycket !!

Medlem sedan dec. 200012 464 inlägg
#4

Om du har sql-server kan du använda case (som är ANSI standard)

sqlUpdate = "UPDATE tblCriteria SET isSelected = case when criteriaValue like '" 
& criteriaChoice & "' then 1 else 0 end"
Medlem sedan juni 2000504 inlägg
#5

jaha, ja.. kanon LarsG.. det här måste jag dokumentera någonstans :) Sånt här är svårt att komma på själv tycker jag.. har en SQL bok hemma, men såna här special knep tycker jag inte man hittar så lätt..

tack igen !

250 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)