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

MySQLで列から特定の値の±1以内に含まれる整数を検索する方法

はじめに

MySQLである基準値の前後「±1以内」に該当する整数を取得したい場合には、BETWEEN -1 AND 1 を使うと簡単に実現できます。この記事では、テーブルの作成からデータの挿入、そして実際に±1以内の整数を抽出するクエリの実行まで、具体的な手順を解説します。

サンプルテーブルの作成

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable
(
    Value int
);
Query OK, 0 rows affected (0.76 sec)

データの挿入

続いて、INSERTコマンドを使ってテーブルにレコードを挿入していきます。

mysql> insert into DemoTable values(14);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(15);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(16);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(17);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(18);
Query OK, 1 row affected (0.09 sec)

登録データの確認

SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

上記のクエリを実行すると、次のような結果が出力されます。

+-------+
| Value |
+-------+
|    14 |
|    15 |
|    16 |
|    17 |
|    18 |
+-------+
5 rows in set (0.00 sec)

±1以内の整数を検索するクエリ

ここが本題です。基準値(この例では 17)から±1以内に含まれる整数を検索するには、列の値から基準値を減算した結果が -1 から 1 の間にあるかどうかを BETWEEN句で判定します。

mysql> select *from DemoTable
    where (Value-17) between -1 and 1;

このクエリを実行すると、次の結果が得られます。

+-------+
| Value |
+-------+
|    16 |
|    17 |
|    18 |
+-------+
3 rows in set (0.03 sec)

まとめ

このように、列の値から基準となる数値を引き算し、その差分に対して BETWEEN -1 AND 1 を適用することで、基準値の±1以内に含まれる整数だけを効率よく抽出できます。応用すれば、BETWEENの範囲を変更することで任意の幅での範囲検索にも対応可能です。あいまいな近傍値を扱いたい場面でぜひ活用してください。

  1. MySQLのVARCHAR型カラムから最大値を正しく取得する方法

    VARCHAR型(文字列型)のカラムに対してそのまま MAX() 関数を使用すると、値は文字列として比較されるため、「8」「901」「10001」のような数値的な大小関係が正しく評価されません。そこで、CAST() を使って値を数値型に変換してから MAX() を適用することで、正確な最大値を取得できます。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable2030 -> ( -> Value varchar(20) -> ); Query OK, 0 row

  2. MySQLで列の最大値を取得する方法をわかりやすく解説

    MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(