結果のフィルタ
WHERE句でフィルタ条件を指定することによって、問合せ結果をフィルタ処理できます。通常、フィルタ条件は、論理演算子ANDまたはORを使用して結合された1つ以上の比較式で構成されます。比較演算子(=、!=、>、>=、<および<=)もサポートされています。
この問合せでは、名がJohnのユーザーのみを戻すように結果がフィルタ処理されます。
sql-> SELECT id, firstname, lastname FROM Users WHERE firstname = "John";
+----+-----------+----------+
| id | firstname | lastname |
+----+-----------+----------+
| 3 | John | Morgan |
| 2 | John | Anderson |
+----+-----------+----------+
2 rows returned
計算されたmonthlysalary
が6000より大きいユーザーを戻すには、次のようにします。
sql-> SELECT id, lastname, income, income/12 AS monthlysalary
FROM Users WHERE income/12 > 6000;
+----+----------+--------+---------------+
| id | lastname | income | monthlysalary |
+----+----------+--------+---------------+
| 5 | Scully | 400000 | 33333 |
| 4 | Smith | 80000 | 6666 |
| 2 | Anderson | 100000 | 8333 |
| 1 | Morrison | 100000 | 8333 |
+----+----------+--------+---------------+
5 rows returned
年齢が30から40の範囲内であるか、収入が100,000より多いユーザーを戻すには、次のようにします。
sql-> SELECT lastname, age, income FROM Users
WHERE age >= 30 and age <= 40 or income > 100000;
+----------+-----+--------+
| lastname | age | income |
+----------+-----+--------+
| Smith | 38 | 80000 |
| Morgan | 38 | NULL |
| Anderson | 35 | 100000 |
| Scully | 47 | 400000 |
+----------+-----+--------+
4 rows returned
カッコで囲まれた式を使用して、演算子間のデフォルトの優先順位を変更できます。たとえば:
年齢が40を超え、かつ、年齢が30未満または収入が100,000以上であるユーザーを戻すには、次のようにします。
sql-> SELECT id, lastName FROM Users WHERE
(income >= 100000 or age < 30) and age > 40;
+----+----------+
| id | lastName |
+----+----------+
| 5 | Scully |
+----+----------+
1 row returned
IS NULL条件を使用すると、フィールド列値がSQL NULL
に設定されている場合に結果を戻すことができます(SQL NULL
は、非JSONフィールドがnullに設定されている場合に使用されます)。
sql-> SELECT id, lastname from Users WHERE income IS NULL;
+----+----------+
| id | lastname |
+----+----------+
| 3 | Morgan |
+----+----------+
1 row returned
IS NOT NULL条件を使用すると、非nullデータを含む列値を戻すことができます。
sql-> SELECT id, lastname from Users WHERE income IS NOT NULL;
+----+----------+
| id | lastname |
+----+----------+
| 4 | Smith |
| 1 | Morrison |
| 5 | Scully |
| 2 | Anderson |
+----+----------+
4 rows returned