[前][次][番号順一覧][スレッド一覧]

mysql:14016

From: "Takayuki Miura" <"Takayuki Miura" <atamaitakunai@xxxxxxxxxx>>
Date: Fri, 25 May 2007 20:35:14 +0900
Subject: [mysql 14016] Re: unsigned int に関するクエリ結果

To:YuGoさま

三浦です、アドバイスありがとうございます。

今回実装したシステムの要件的に、エラーでけられるより
都合がよかったので、MySQLの特技にあまえていました(笑)。

> 今のままで行くなら、
> sql>UPDATE SET id = CASE WHEN (id - 100) < 0 THEN 0 ELSE (id - 100) END ;
> とかやってみてください。

上記ですが、WHEN id - 100 の判定がやはり、同じ問題にぶつかってしまうようです。
WHEN id < 100 に変更したら、OKでした。

今回は、上記の方針で対応しようと思います。
ありがとうございました。


07/05/25 に YuGo<yu.gotou@xxxxxxxxxx> さんは書きました:
> みうらどの。
> こういうデータの範囲外の受け止めてしまうのは、MySQLの特技(ふとっぱら)か
> も知れません。
>でも、
> sql>SET sql_mode=STRICT_ALL_TABLES
> したり、my.ini[mysqld]にsql_mode=STRICT_ALL_TABLESと書いたりすれば、
> エラーでけってくれるようになっているようです。
> http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
> 個人的には、こっちの方がまとものような気がしますが、みうらさんはどちらが
> おこのみでしょうか。
>
> 今のままで行くなら、
> sql>UPDATE SET id = CASE WHEN (id - 100) < 0 THEN 0 ELSE (id - 100) END ;
> とかやってみてください。
>
>
>
>
>
> > いつも勉強させていただいてます。
> >
> > unsigned int に対するクエリの結果が予想と異なり
> > 原因が分からなかったので質問させていただきます。
> > ご教授いただければ幸いです。
> > よろしくお願いいたします。
> >
> > ■MySQL
> > var.5.0.37
> >
> > ■テーブル定義
> > CREATE TABLE `test` (
> >  `id` INTEGER UNSIGNED NOT NULL DEFAULT 0,
> >  PRIMARY KEY(`id`)
> > )
> >
> > ■存在するレコード
> > id
> > ---------
> > 0
> >
> > ■問題のクエリ
> > update test set id = id - 100;
> >
> > ■問題の結果
> > 「0」になると思いきや、「4294967295」になってしまった。
> >
> >
> > ※以下補足
> > 下記のクエリに関しては、予想通りの結果
> > ・クエリ
> > update test set id = -100;
> > ・結果
> > 0
> >
> > ・クエリ
> > update test set id = 100000000000;
> > ・結果
> > 4294967295
> >
> >
>
>

[前][次][番号順一覧][スレッド一覧]

     14011 2007-05-25 16:05 ["Takayuki Miura" <at] unsigned int に関するクエリ結果         
     14013 2007-05-25 18:42 ┣[N.Toge <toge@xxxxxxx]                                       
     14015 2007-05-25 19:22 ┃┣[MURAKAMI Tomokazu <t]                                     
     14017 2007-05-25 20:42 ┃┗["Takayuki Miura" <at]                                     
     14014 2007-05-25 19:09 ┗[YuGo <yu.gotou@xxxxx]                                       
->   14016 2007-05-25 20:35  ┗["Takayuki Miura" <at]