Kom ihåg mig?
Home Menu

Menu


Mysql vägrar uppdatera rad

Ämnesverktyg Visningsalternativ
Oläst 2007-06-29, 14:26 #1
Blackexs avatar
Blackex Blackex är inte uppkopplad
Medlem
 
Reg.datum: Jun 2006
Inlägg: 238
Blackex Blackex är inte uppkopplad
Medlem
Blackexs avatar
 
Reg.datum: Jun 2006
Inlägg: 238
Kod:
UPDATE MYTABLE SET VAL = "WMN" WHERE ID = 666 AND VAL != "WMN"
Som synes vill jag endast uppdatera raden om det nuvarande värdet skiljer sig från det värde jag försöker stoppa in.

I tabellen finns en rad som har rätt id (666) och där VAL är NULL. När jag kör ovanstående fråga så påverkas inte raden.

Någon som vet varför?
Blackex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-29, 15:03 #2
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Läst deras dokumentation?

Citat:
To test for NULL, you cannot use the arithmetic comparison operators such as =, <, or <>
http://dev.mysql.com/doc/refman/5.0/en/wor...-with-null.html
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-29, 15:27 #3
Blackexs avatar
Blackex Blackex är inte uppkopplad
Medlem
 
Reg.datum: Jun 2006
Inlägg: 238
Blackex Blackex är inte uppkopplad
Medlem
Blackexs avatar
 
Reg.datum: Jun 2006
Inlägg: 238
Aha. Det är därför. Är det här bästa sättet att komma runt problemet?

Citat:
UPDATE MYTABLE SET VAL = "WMN" WHERE ID = 666 AND IFNULL(VAL,"") != "WMN"
Blackex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-29, 22:57 #4
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
IS NOT NULL eller IS NULL
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-29, 23:08 #5
Blackexs avatar
Blackex Blackex är inte uppkopplad
Medlem
 
Reg.datum: Jun 2006
Inlägg: 238
Blackex Blackex är inte uppkopplad
Medlem
Blackexs avatar
 
Reg.datum: Jun 2006
Inlägg: 238
Nja. Då blir det väl ett OR, vilket förmodligen gör frågan väldigt långsam. Eller har jag förstått dig rätt? Menar du:

Kod:
UPDATE MYTABLE SET VAL = "WMN" WHERE ID = 666 AND (VAL IS NULL OR VAL != "WMN")
Blackex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-07-02, 07:38 #6
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Citat:
Originally posted by Blackex@Jun 29 2007, 15:27
Aha. Det är därför. Är det här bästa sättet att komma runt problemet?

Citat:
UPDATE MYTABLE SET VAL = "WMN" WHERE ID = 666 AND IFNULL(VAL,"") != "WMN"
ja det är bästa sättet, fast om du vet att 666 skiljer sig, varför inte bara uppdatera med avseende på ID:t...
eg0master är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 19:57.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017