変換されてしまうのは仕様であるこうなってしまうのはマニュアルにも書いてあって、どうやら仕様のようです。バイト値での演算をサポートします。結果は符合なしになります。ビットの整数にキャストすることで、これをそれぞれオーバーライドすることができます。計算元の値が1つでもUNSIGNEDの場合、計算(今回の例でいうと引き算)後に符号なしの整数に自動的に変換されるため、このような値になるようです。ABS()を実行する前の計算では負数になることもあるのですから、結果を符号つき(SIGNED)にしておかないと異常な数値となってしまうわけです。解決法というわけで、解決法は上にもあったCAST()を利用してSIGNEDに変換してあげることで、合計値がマイナスの計算でも正しく絶対値を求めることができます。SIGNED));1学習のポイントMySQLは奥が深いですなぁ。コメントをキャンセルメールアドレスが公開されることはありません。Webサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。田舎に生まれ育ち東京へ。技術はDTPデザインからプログラミングまで、インフラはCD-ROM全盛からクラウドサーバーまで、いろいろなビジネスを作り、関わってきました(知見を生かして専門学校の講師も3年ほど)。今ではAWSで月間100万PVを超えるサービスを制作・運営しながらさらなるノウハウを蓄積中。このサイトではビジネスをITコンサルタント視点で考え、感じた知見や経験が世の中のお役に立てば、という視点で無料記事として公開しています。最近は機械学習による仕事の効率化を研究中。reserved.代表者のライフハックブログ。