WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql vägrar uppdatera rad (https://www.wn.se/forum/showthread.php?t=22043)

Blackex 2007-06-29 14:26

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?

nosnaj 2007-06-29 15:03

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

Blackex 2007-06-29 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"

hnn 2007-06-29 22:57

IS NOT NULL eller IS NULL

Blackex 2007-06-29 23:08

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")

eg0master 2007-07-02 07:38

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...


Alla tider är GMT +2. Klockan är nu 10:07.

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