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

mysql:14014

From: YuGo <YuGo <yu.gotou@xxxxxxxxxx>>
Date: Fri, 25 May 2007 19:09:22 +0900
Subject: [mysql 14014] Re: unsigned int に関するクエリ結果

みうらどの。
こういうデータの範囲外の受け止めてしまうのは、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]