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

mysql:14843

From: Mikiya Okuno <Mikiya Okuno <Mikiya.Okuno@xxxxxxxxxx>>
Date: Tue, 12 May 2009 09:41:40 +0900
Subject: [mysql 14843] Re: UNSIGNEDの0からの引き算

奥野です。

おはようございます。

mysql> SET sql_mode = NO_UNSIGNED_SUBTRACTION;

をお試しあれ。
--
Mikiya Okuno, MySQL Support Engineer
Sun Microsystems KK, Tokyo, Japan
http://www-jp.mysql.com/


On 12/05/2009, at 12:49 AM, mao wrote:

> こんばんはMAOです。
> すみません。お教えください。
>
> mysql 3.xx.xxで動いていたプログラムを
> mysql 5.0.45に移植中です。
>
> mysql 3のときですが、
> INT UNSIGNEDで0が入っているフィールドから引き算をしても
> 0は0のままで0以下になることはなかったのですが、
> mysql 5でやった場合は、0から1を引くと4294967295になってしまいます。
> これを0にする方法はありませんでしょうか?
> 0かどうか確認をして、0だったら、引かないという方法は考えられますが、
> フィールド数が多く、プログラムでなく、SQL側で対応できればと考えています。
>
> 以上、よろしくお願いいたします。
>
>
> ------ test sql start -------
> CREATE TABLE `mtest` (
> `fnum` INT UNSIGNED NOT NULL
> ) TYPE = MYISAM ;
>
> INSERT INTO `mtest` ( `fnum` )
> VALUES (
> '0'
> );
> update mtest set fnum = fnum -1;
>
> select fnum from mtest;
> ------ test sql end -------
>
> ■結果
> mysql 3.xの場合は 0
> mysql 5.xの場合は 4294967295
>
>
>


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

     14841 2009-05-12 00:49 [mao <mao@xxxxxxxxxx>] UNSIGNEDの0からの引き算                 
     14842 2009-05-12 08:21 ┣[高橋政利 <takahashi@]                                       
->   14843 2009-05-12 09:41 ┣[Mikiya Okuno <Mikiya]                                       
     14844 2009-05-12 09:46 ┗[HIRATSUKA Sadao <hir]                                       
     14847 2009-05-12 21:27  ┗[mao <mao@xxxxxxxxxx>]