MySQLで引用符付きの数値を加算する際、数値の前に非数値テキストがあるとどう評価される?
引用符で囲まれた数値同士を加算する際、その数値の前に「Kg」や「Oz」のような数値以外のテキストが含まれている場合、MySQLはその値を単純に 0 として評価します。以下の例で、この動作を具体的に確認できます。
例
mysql> Select 'Kg 1525' + 'Oz 200' As Total; +-------+ | Total | +-------+ | 0 | +-------+ 1 row in set, 2 warnings (0.00 sec) mysql> Select 'Kg 1525' + '200' As Total; +-------+ | Total | +-------+ | 200 | +-------+ 1 row in set, 1 warning (0.00 sec)
最初の例では、両方の文字列('Kg 1525' と 'Oz 200')がいずれも数値以外のテキストで始まっているため、MySQLはこれらを数値として解釈できず、加算結果は 0 になります。
一方、2番目の例では、片方のオペランドである '200' が純粋な数値として正しく解釈できるため、もう片方が 0 と評価されても、加算結果は 200 となります。
なお、このような変換が行われる際には警告(warnings)が発生する点にも注意してください。意図しない計算結果を避けるため、数値演算を行うカラムや値には、先頭に余計なテキストを含めないことが推奨されます。
-
【MySQL】小数点より2桁前(十の位)の数字を取得する方法
MySQLで小数点より2桁前(十の位)に位置する数字を取得したい場合は、div演算子の概念を利用すると簡単に実現できます。divは整数除算を行う演算子で、剰余演算子(%)と組み合わせることで、任意の桁の数字を取り出すことが可能です。 テーブルの作成 まず、動作確認用のサンプルテーブルを作成しましょう。 mysql> create table demo1 −> ( −> value float −> ); Query OK, 0 rows affected (2.20 sec) create table文を使用し、float型のカラム
-
MySQLで特定の値を持つ列の数をカウントする方法【SUM関数の活用】
はじめにMySQLでは、SUM関数と加算演算子(+)・論理演算子(AND)を組み合わせることで、テーブル内の複数の列に含まれる特定の値(たとえば「1」)の合計個数や、すべての列がその値を持つ行数を簡単に集計できます。本記事では、サンプルテーブルを作成しながら、具体的なSQLクエリの書き方と実行結果をわかりやすく解説します。基本構文特定の値を持つ列の数をカウントする場合、以下のような構文を使用します。selectsum(yourColumnName1 + yourColumnName2 + yourColumnName3 ... N) as `anyAliasName1`,sum(yourCol