MySQLで特定の値より大きいレコードだけを抽出する方法|WHERE句を使った条件指定の基本
MySQLで特定の値以下のレコードを除外するには?
MySQLである値を基準に、それより小さいレコードを除外し、大きい値を持つレコードだけを取得したい場合は、WHERE句に比較演算子「>(より大きい)」を組み合わせるのが基本です。
基本構文
SELECT * FROM テーブル名 WHERE カラム名 > 値;
この構文により、指定したカラムの値が条件値より大きい行のみが結果セットとして返されます。
実際に試してみよう:サンプルテーブルの作成
まずは動作を確認するためのテーブルを作成します。
mysql> create table demo27 -> ( -> id int not null auto_increment primary key, -> value int -> ); Query OK, 0 rows affected (3.14 sec)
ここでは、自動採番される「id」カラムと、整数値を格納する「value」カラムを持つテーブルを作成しました。
テストデータの挿入
続いて、INSERT文を使って複数のレコードを挿入します。
mysql> insert into demo27(value) values(50); Query OK, 1 row affected (0.12 sec) mysql> insert into demo27(value) values(500); Query OK, 1 row affected (0.20 sec) mysql> insert into demo27(value) values(100); Query OK, 1 row affected (0.17 sec) mysql> insert into demo27(value) values(400); Query OK, 1 row affected (0.14 sec) mysql> insert into demo27(value) values(100); Query OK, 1 row affected (0.11 sec) mysql> insert into demo27(value) values(800); Query OK, 1 row affected (0.10 sec) mysql> insert into demo27(value) values(600); Query OK, 1 row affected (0.15 sec)
登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from demo27;
実行結果は以下の通りです。
+----+-------+ | id | value | +----+-------+ | 1 | 50 | | 2 | 500 | | 3 | 100 | | 4 | 400 | | 5 | 100 | | 6 | 800 | | 7 | 600 | +----+-------+ 7 rows in set (0.00 sec)
全部で7件のレコードが登録されていることがわかります。
特定の値より小さいレコードを除外するクエリ
ここでは例として、「500以下の値を持つレコードを除外し、500より大きいレコードだけを取得」してみます。WHERE句で value > 500 という条件を指定します。
mysql> select *from demo27 where value > 500;
実行結果は以下の通りです。
+----+-------+ | id | value | +----+-------+ | 6 | 800 | | 7 | 600 | +----+-------+ 2 rows in set (0.00 sec)
ご覧のとおり、値が500より大きい「800」と「600」の2件だけが抽出されました。条件値「500」と同じ値や、それより小さい値のレコードはすべて除外されています。
補足:比較演算子のバリエーション
目的に応じて、WHERE句で使う比較演算子を変えることで柔軟な条件指定が可能です。
>:指定値より大きい(今回はこれを使用)>=:指定値以上(同値も含めたい場合)<:指定値より小さい<=:指定値以下<>または!=:指定値と等しくない
たとえば「500以上」を残したい場合は where value >= 500 とすることで、値が500のレコードも結果に含まれます。
まとめ
MySQLで特定の値よりも低い値のレコードを除外して取得したい場合は、WHERE句と比較演算子「>」を使うだけで簡単に実現できます。シンプルながら実務でも頻繁に使われる基本的なテクニックなので、ぜひマスターしておきましょう。
-
MySQLのSELECT文で特定のカラム(列)のレコードを取得する方法
はじめにMySQLでSELECTクエリを実行する際、SELECT *を使うとすべてのカラムが取得されますが、カラム名を明示的に指定すれば、必要なカラム(列)のデータだけを効率的に取り出せます。この記事では、サンプルテーブルを作成しながら、特定のカラムのレコードを取得する手順を解説します。1. テーブルの作成まず、CREATE TABLE文でサンプル用のテーブルを作成しましょう。mysql> create table DemoTable1837 ( StudentId int NOT NULL AU
-
MySQLで特定の値を持つ列の数をカウントする方法【SUM関数の活用】
はじめにMySQLでは、SUM関数と加算演算子(+)・論理演算子(AND)を組み合わせることで、テーブル内の複数の列に含まれる特定の値(たとえば「1」)の合計個数や、すべての列がその値を持つ行数を簡単に集計できます。本記事では、サンプルテーブルを作成しながら、具体的なSQLクエリの書き方と実行結果をわかりやすく解説します。基本構文特定の値を持つ列の数をカウントする場合、以下のような構文を使用します。selectsum(yourColumnName1 + yourColumnName2 + yourColumnName3 ... N) as `anyAliasName1`,sum(yourCol