MySQLでDISTINCT句をWHERE句・LIMIT句と組み合わせて使う方法
MySQLのクエリにおいて、DISTINCT句にWHERE句を組み合わせて使用すると、結果セットから重複を除いた一意な行を返す際の条件を指定することができます。また、DISTINCT句にLIMIT句を組み合わせれば、サーバーが返す一意な行数の最大値を制限することも可能です。
使用例
以下は、「testing」というテーブルに対して、DISTINCT句をWHERE句およびLIMIT句と一緒に使用した例です。
mysql> Select * from testing; +------+---------+---------+ | id | fname | Lname | +------+---------+---------+ | 200 | Raman | Kumar | | 201 | Sahil | Bhalla | | 202 | Gaurav | NULL | | 203 | Aarav | NULL | | 204 | Harshit | Khurana | | 205 | Rahul | NULL | | 206 | Piyush | Kohli | | 207 | Lovkesh | NULL | | 208 | Gaurav | Kumar | | 209 | Raman | Kumar | +------+---------+---------+ 10 rows in set (0.00 sec) mysql> Select DISTINCT Lname from testing where Lname IS NOT NULL limit 3; +---------+ | Lname | +---------+ | Kumar | | Bhalla | | Khurana | +---------+ 3 rows in set (0.00 sec)
このクエリでは、まずWHERE句(Lname IS NOT NULL)によって姓がNULLの行が除外され、次にDISTINCT句によって重複する姓が取り除かれ、最後にLIMIT句によって先頭の3件のみが返されます。その結果、「Kumar」「Bhalla」「Khurana」という3つの異なる姓が取得されています。このように各句の評価順序を理解すると、意図した通りの結果を効率よく得られます。
-
単一のMySQLクエリでWHERE、AND、ORを組み合わせて使用する方法
単一のMySQLクエリでWHERE、AND、ORを組み合わせることは可能はい、WHERE句とAND・OR演算子は、すべて1つのクエリ内で組み合わせて使用できます。まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable ( StudentId int, StudentFirstName varchar(20), StudentLastName varchar(20), StudentAge int ); Query OK, 0 rows affected (0.53 sec)テーブルへのレコード
-
MySQLビュー(VIEW)にWHERE句を使う方法をわかりやすく解説
MySQLビューでWHERE句を使用する方法MySQLでは、作成済みのビュー(VIEW)に対して、通常のテーブルと同じようにWHERE句を指定してデータを絞り込むことができます。基本となる構文は以下の通りです。select * from yourViewName where yourColumnName=yourValue;それでは、実際にサンプルを使って手順を確認していきましょう。1. サンプルテーブルを作成するまず、学生情報を格納するテーブルを作成します。mysql> create table DemoTable1432 -> ( -> StudentId