MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

引用符で囲まれた数値に非数値のテキストが含まれる場合、MySQLは加算をどのように評価するのか?

引用符で囲まれた数値同士を加算する際、その数値の後ろに「Kg」や「Oz」のような非数値のテキストが付いている場合、MySQLはどのように処理するのでしょうか。

結論から言うと、MySQLは非数値のテキスト部分を単純に無視(破棄)し、数値部分のみを抽出して加算を実行します。ただし、この際に警告(warnings)が発生する点に注意が必要です。つまり、計算自体はエラーにならず結果が返されますが、データの変換に関する警告が記録される仕組みです。

以下の例を見てみましょう。「1525 Kg」と「200 Oz」という文字列を加算しています。

実行例

mysql> Select '1525 Kg' + '200 Oz' As Total;
+-------+
| Total |
+-------+
| 1725  |
+-------+
1 row in set, 2 warnings (0.00 sec)

実行結果として「1725」という数値が返されています。これは、「1525 Kg」から数値部分の「1525」だけが、「200 Oz」から数値部分の「200」だけが抽出され、それらが加算されたためです。単位を表す「Kg」や「Oz」といったテキストは評価の対象から除外されました。

同時に「2 warnings」と表示されている点にも注目してください。これは、文字列から数値への変換時に完全な変換が行われなかったことを示す警告です。実際の運用では、SHOW WARNINGS; を実行することで警告の詳細内容を確認できます。

このようにMySQLは柔軟な型変換を行いますが、意図しないデータが混在している可能性もあるため、本番環境では数値と単位などを別々のカラムで管理することが推奨されます。

  1. PythonでMySQLデータベースへの挿入後にIDを取得する方法

    はじめに PythonからMySQLデータベースへレコードを挿入する際、「今挿入したばかりのレコードのID(AUTO_INCREMENTで自動採番された値)をすぐに取得したい」というケースは非常によくあります。本記事では、pymysqlライブラリを使ってMySQLにデータを挿入し、その直後にIDを取得する具体的な手順を解説します。 前提条件 作業を始める前に、以下の環境が整っていることを確認してください。 MySQL 8.0.12 がインストールされていること Python 3.6.3(32ビット) がインストールされていること pipコマンドで pymysql がインストールされているこ

  2. MySQLで特定の値を持つ列の数をカウントする方法【SUM関数の活用】

    はじめにMySQLでは、SUM関数と加算演算子(+)・論理演算子(AND)を組み合わせることで、テーブル内の複数の列に含まれる特定の値(たとえば「1」)の合計個数や、すべての列がその値を持つ行数を簡単に集計できます。本記事では、サンプルテーブルを作成しながら、具体的なSQLクエリの書き方と実行結果をわかりやすく解説します。基本構文特定の値を持つ列の数をカウントする場合、以下のような構文を使用します。selectsum(yourColumnName1 + yourColumnName2 + yourColumnName3 ... N) as `anyAliasName1`,sum(yourCol