mysql:14844
From: HIRATSUKA Sadao <HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx>>
Date: Tue, 12 May 2009 09:46:16 +0900
Subject: [mysql 14844] Re: UNSIGNEDの0からの引き算
平塚です。 On Tue, 12 May 2009 00:49:07 +0900 mao <mao@xxxxxxxxxx> wrote: > mysql 5でやった場合は、0から1を引くと4294967295になってしまいます。 > これを0にする方法はありませんでしょうか? 使っている人をみたことがないのでおすすめするわけではないんですが、 NO_UNSIGNED_SUBTRACTIONを使うとできます。 mysql> create table t (c1 int unsigned); Query OK, 0 rows affected (0.18 sec) mysql> insert into t values (0); Query OK, 1 row affected (0.00 sec) mysql> set sql_mode = 'NO_UNSIGNED_SUBTRACTION'; Query OK, 0 rows affected (0.00 sec) mysql> update t set c1 = c1 - 1; Query OK, 0 rows affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 1 mysql> select * from t; +------+ | c1 | +------+ | 0 | +------+ 1 row in set (0.00 sec) <参考> http://dev.mysql.com/doc/refman/4.1/en/news-4-0-2.html Added NO_UNSIGNED_SUBTRACTION to the set of flags that may be specified with the --sql-mode option for mysqld. It disables unsigned arithmetic rules when it comes to subtraction. (This makes MySQL 4.0 behave more like 3.23 with UNSIGNED columns). -- 平塚貞夫 hiratsuka.sadao@xxxxxxxxxx
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>]