結果のフィルタ

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