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

MySQLのCONV()関数:数値が指定した基数に一致しない場合の挙動

MySQLのCONV()関数では、引数として渡された数値が指定された基数(from_base)に適合していない場合、戻り値として0が返されます。

例えば、10進数の9を2進数に変換したい場合、from_baseには「10」を指定するのが正しい使い方です。しかし、誤ってfrom_baseに「8」(8進数)を指定すると、MySQLはエラーではなく0を返します。

具体例

mysql> Select CONV(9,8,2);

+-------------+
| CONV(9,8,2) |
+-------------+
| 0           |
+-------------+

1 row in set (0.00 sec)

なぜ0が返されるのか

8進数で使用できる数字は0から7までに限定されています。そのため、数値9を8進数として扱うことはできず、この場合の基数は10進数(10)である必要があります。

つまり、CONV()関数に渡した数値が指定した基数の表現範囲外である場合、有効な変換結果が得られないため、MySQLは0を出力する仕組みになっています。基数を指定する際は、対象となる数値がその基数で正しく表現できるかどうかを必ず確認しましょう。

  1. MySQLのMAX()集計関数で列の最大値を取得する方法

    MySQLでは、列の最大値を取得するために、あらかじめ用意されている集計関数 MAX() を使用できます。この記事では、実際にテーブルを作成し、データを挿入して、MAX()関数で最大値を取得する手順を具体的に解説します。1. テーブルの作成まず、サンプルとなるテーブルを作成します。mysql> create table DemoTable ( Id int ); Query OK, 0 rows affected (0.96 sec)2. レコードの挿入次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。mysql> insert into Demo

  2. 【MySQL】NULL以外の値を先頭に、NULL値を末尾に表示してソートする方法

    はじめに MySQLでは、ORDER BY句とIS NULLを組み合わせることで、NULL以外の値を持つ行を先に表示し、NULL値を持つ行を後に表示することができます。本記事では、実際のサンプルを使いながら、その具体的な手順と仕組みをわかりやすく解説します。 テーブルの作成 まずは、動作確認用のサンプルテーブルを作成しましょう。 mysql> create table DemoTable1357 -> ( -> StudentName varchar(40), -> StudentCountryName varchar(30) ->