【MySQL】小数点より2桁前(十の位)の数字を取得する方法
MySQLで小数点より2桁前(十の位)に位置する数字を取得したい場合は、div演算子の概念を利用すると簡単に実現できます。divは整数除算を行う演算子で、剰余演算子(%)と組み合わせることで、任意の桁の数字を取り出すことが可能です。
テーブルの作成
まず、動作確認用のサンプルテーブルを作成しましょう。
mysql> create table demo1 −> ( −> value float −> ); Query OK, 0 rows affected (2.20 sec)
create table文を使用し、float型のカラム「value」を持つテーブル「demo1」を作成しました。
レコードの挿入
次に、insertコマンドを使ってテーブルにいくつかのレコードを挿入します。
mysql> insert into demo1 values(456.54); Query OK, 1 row affected (0.16 sec) mysql> insert into demo1 values(50.64); Query OK, 1 row affected (0.17 sec) mysql> insert into demo1 values(1000.78); Query OK, 1 row affected (0.13 sec)
レコードの確認
selectステートメントでテーブル内のデータを表示してみましょう。
mysql> select *from demo1;
このSQLを実行すると、以下のような出力が得られます。
+---------+ | value | +---------+ | 456.54 | | 50.64 | | 1000.78 | +---------+ 3 rows in set (0.02 sec)
小数点より2桁前の数字を取得するクエリ
それでは、本題である「小数点より2桁前(十の位)に位置する数字を取得するクエリ」を見ていきましょう。
mysql> select value div 10%10 from demo1;
実行結果は以下の通りです。
+-----------------+ | value div 10%10 | +-----------------+ | 5 | | 5 | | 0 | +-----------------+ 3 rows in set (0.03 sec)
クエリの仕組みを解説
このクエリがどのように動作しているのか、順を追って説明します。
- value div 10:まず、divによる整数除算で小数点以下を切り捨て、桁を一つ右にずらします。例えば「456.54 div 10」は「45」になります。
- % 10:次に、その結果を10で割った余りを求めることで、末尾の一桁(元の数値では十の位)だけを取り出します。「45 % 10」は「5」です。
この仕組みにより、「456.54」からは「5」、「50.64」からは「5」、「1000.78」からは「0」が取得され、それぞれの数値の十の位の数字が正しく抽出できていることが確認できます。
-
MySQLでテーブルのフィールド数(カラム数)を取得する方法
MySQLでテーブルのフィールド数を確認するには MySQLでテーブルに含まれるフィールド(カラム)の数を表示するには、COUNT(*)を使用します。システムテーブルであるINFORMATION_SCHEMA.COLUMNSを参照することで、特定のテーブルのカラム情報を取得できます。 基本構文 フィールド数を取得するための基本構文は以下のとおりです。 SELECT COUNT(*) AS 任意の別名 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = テーブル名 AND TABLE_SCHEMA = データベース名; table_nameに
-
MySQLに数値をDECIMAL型(10進数)として保存・フォーマットする方法
MySQLで数値を10進数として扱うには? MySQLでは、数値をわざわざ文字列としてフォーマットして保存する必要はありません。DECIMALデータ型を使えば、小数点以下の桁数を指定した正確な10進数としてそのまま格納できます。 例えば DECIMAL(10,2) と定義すると、整数部分が最大8桁、小数部分が2桁の数値を保存できます。小数第3位以下の値は自動的に丸められます。 1. テーブルを作成する まず、DECIMAL型のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1330 -> ( -> Amount