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

MySQLで引用符で囲まれた2つの数値を加算するとどう評価される?

引用符(クォート)で囲まれた2つの数値を加算しようとする場合、これは文字列を数値として扱っていることを意味します。このような場合、MySQLは自動的に文字列の値を最も近い数値へ変換し、その結果をもとに計算を実行します。

つまり、演算子「+」を使った算術演算のコンテキストでは、オペランドが文字列であっても、MySQLはそれを暗黙的に数値型へキャストして評価するのです。

実行例

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

上記の例では、引用符で囲まれた '1525''200' という2つの文字列が、それぞれ数値の 1525200 に変換され、加算された結果である 1725 が返されています。

文字列から数値への変換に関する注意点

  • MySQLは文字列の先頭から数値として解釈できる部分だけを読み取ります。例えば '1525abc'1525 として扱われますが、その際に警告(Warning)が発生します。
  • 先頭に数値として解釈できる部分がまったく含まれていない文字列は 0 として評価されます。
  • 暗黙的な型変換に頼ると意図しない結果やパフォーマンス低下を招く可能性があるため、本番環境では明示的に数値型のカラムや値を使用することが推奨されます。
  1. MySQLで現在の日付から1日以上の行を抽出する方法(INTERVALの使い方)

    現在の日時を基準に「1日前以降」のデータを取得したい場合は、MySQLのINTERVALを使うと簡単に実現できます。この記事では、サンプルテーブルを作成し、実際に条件に合う行を抽出するまでの手順を順番に解説します。 1. 現在の日付を確認する まず、CURDATE()関数で現在の日付を確認しておきましょう。 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-11-29 | +------------+ 1 row in set (0.00 sec) 現在の日付は「2019-11-29」

  2. MySQLで2つの異なる列の値を1つの列のリストとして選択・表示する方法(UNION ALLの活用)

    UNION ALLを使って2つの列の値を1つのリストにまとめる方法MySQLで、異なる2つの列(カラム)に格納されている値を、1つの列としてまとめて取得したい場合はUNION ALLを使用します。UNION ALLは、複数のSELECT文の結果をそのまま連結して表示できる便利な構文です。ここでは、実際にテーブルを作成して動作を確認してみましょう。1. テーブルの作成まず、2つの名前列を持つテーブルを作成します。mysql> create table DemoTable1813 ( Name1 varchar(20), Name2 varchar(20) )