---
title: "WHERE句"
url: https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/where/
description: "ZCQLは、使い慣れたクエリ言語をモデルにしたCatalyst独自のクエリ言語であり、アプリのデータベースを効率的にクエリするために使用できます。"
last_updated: 2026-02-23T12:39:41Z
service: Cloud Scale
type: general
---
# WHERE句
### はじめに
`WHERE`句は、検索クエリで指定された条件または条件のセットに基づいてデータレコードをフィルタリングするために使用されます。WHERE条件がクエリで使用されると、データレコードは指定された条件に基づいて検証され、条件を満たすレコードに対してのみコマンドが実行されます。
たとえば、`SELECT`文で`WHERE`条件を使用する構文は以下のとおりです:
```sql
SELECT column_name(s) FROM base_table_name WHERE condition
```
`WHERE`条件は、`UPDATE`文や`DELETE`文でも使用できます。
### WHERE句でサポートされる演算子
ZCQLクエリの`WHERE`条件で以下の演算子を使用できます:
| 演算子 |
説明 |
| = |
等しい |
| IS |
オペランドが値と同じ場合にTRUE |
| IS NULL |
オペランドがnull値の場合にTRUE |
| IS NOT NULL |
オペランドがnull値でない場合にTRUE |
| != |
等しくない |
| LIKE |
オペランドがパターンに一致する場合にTRUE |
| NOT LIKE |
オペランドがパターンに一致しない場合にTRUE |
| BETWEEN |
オペランドの値が開始値と終了値の間にある場合にTRUE |
| IN |
オペランドが式のリストのいずれかと等しい場合にTRUE |
| NOT IN |
オペランドが式のリストのいずれとも等しくない場合にTRUE |
| > |
より大きい |
| >= |
以上 |
| < |
より小さい |
| <= |
以下 |
**例**:
Moviesテーブルから2018年7月13日以外の日に上映される映画のリストを表示するには、以下のように`WHERE`句を使用してクエリに日付条件を指定できます:
```sql
SELECT MovieName, ShowDate FROM Movies WHERE ShowDate IS '2018-07-14'
```
以下の出力が生成されます:
| MovieName |
ShowDate |
| Hotel Transylvania 3: Summer Vacation |
2018-07-14 |
| Skyscraper |
2018-07-14 |
### 複数のWHERE条件
1つのクエリで最大5つのWHERE条件を指定できます。複数の`WHERE`条件を指定する場合、`AND`または`OR`演算子を使用して条件を結合できます。`AND`と`OR`演算子の機能は以下のとおりです:
* `AND`: `AND`演算子に関連付けられた両方の条件を満たすデータレコードのみを生成します。
* `OR`: `OR`演算子に関連付けられた条件のいずれかを満たすデータレコードを生成します。
たとえば、`SELECT`文で複数の`WHERE`条件を使用する構文は以下のとおりです:
```sql
SELECT column_name(s)
FROM base_table_name
WHERE condition_1 AND|OR condition_2.. AND|OR condition_5
```
**例**:
_Movies_テーブルから7月14日に上映される'The First Purge'または'Skyscraper'の上映日と上映時間のリストを表示するには、以下のクエリを実行します:
```sql
SELECT MovieName, ShowDate, ShowTime FROM Movies WHERE MovieName='The First Purge' OR MovieName='Skyscraper' AND ShowDate='2018-07-14'
```
上記の条件に一致するレコードは1つだけです。したがって、クエリは以下の結果を生成します:
| MovieName |
ShowDate |
ShowTime |
| Skyscraper |
2018-07-14 |
21:30:00 |
### LIKE文
`LIKE`条件を使用すると、特定の条件を含むレコードを指定し、その条件に一致するすべてのレコードを選択できます。たとえば、取得するレコードが特定のアルファベットで始まる必要がある、または特定の値を含む必要があるように指定できます。
たとえば、`UPDATE`文での`LIKE`条件の構文は以下のとおりです:
```sql
UPDATE base_table_name
SET column_name(s)=value(s)
WHERE condition
LIKE *value*
```
'\*'は、指定した値の前後、または前後の両方に使用できます。'\*'は本質的にプレースホルダーであり、その代わりに任意の値が置換可能であることを示します。
たとえば、テーブル内のアルファベット'A'で始まるすべてのレコードを取得する必要があることを指定するには、`LIKE`の値として'A\*'と入力できます。これは、文字Aの後に任意の値が続くことを指定します。
**例:**
_Movies_テーブルで映画名が文字'S'で始まるレコードを更新するには、以下のクエリを実行します:
```sql
UPDATE Movies SET ShowDate='2018-07-17' WHERE MovieName like 'S*'
```
以下のレコードが更新され、値が設定されます:
| MovieID |
MovieName |
ShowDate |
ShowTime |
TheaterID |
| 2059 |
Skyscraper |
2018-07-17 |
21:30:00 |
053 |
`LIKE`条件文で定義されたZCQL文では、ワイルドカード構文と**\***や**?**などの記号も使用できます。
| ワイルドカード構文 |
定義 |
| `\*` |
0個以上の文字に一致 |
| `?` |
正確に1文字に一致 |
### BETWEEN文
`BETWEEN`条件を使用すると、数値を含む特定のカラムの開始値と終了値を指定してレコードをフィルタリングできます。たとえば、パーセンテージ値が70から80の間にあるすべてのレコードを選択できます。
たとえば、`DELETE`文での`BETWEEN`条件の構文は以下のとおりです:
```sql
DELETE FROM base_table_name
WHERE condition
BETWEEN Value1 AND Value2
```
> **注意:** `BETWEEN`文は、Catalyst Data Storeテーブルの'Int'または'Double'値の選択にのみ使用できます。他のデータ型には使用できません。
**例:**
_Movies_テーブルでMovieIDの値が2056から2059の間にあるレコードを削除するには、以下のクエリを実行します:
```sql
DELETE FROM Movies WHERE MovieID BETWEEN 2056 AND 2059
```
テーブルから以下のレコードが削除されます:
| MovieID |
MovieName |
ShowDate |
ShowTime |
TheaterID |
| 2057 |
Ant-Man and the Wasp |
2018-07-13 |
14:20:00 |
052 |
| 2058 |
Hotel Transylvania 3: Summer Vacation |
2018-07-14 |
17:00:00 |
052 |
> **注意:** 正反対の結果を生成するには、`NOT BETWEEN`文を使用できます。`BETWEEN`文と同じ構文と条件が`NOT BETWEEN`文にも適用されます。
### カラム対カラムの比較
同じテーブルまたは異なるテーブルの2つのカラムを、比較の左辺と右辺で**カラム名をそれぞれのテーブル名で参照して**比較できます。比較の結果は、テーブル内のcolumn1とcolumn2に同じ値を含む行を返します。
`WHERE`句でのこの比較サポートは、`SELECT`、`UPDATE`、`DELETE`クエリに適用されます。
以下のデータ型の任意の2つのカラムを比較できます:`BOOLEAN`、`DOUBLE`、`DATE`、`DATETIME`、`ENCRYPTED`、`VARCHAR`、`TEXT`、`INT`、`BIGINT`。
> **注意:** 異なるデータ型の2つのカラムを比較することはできません。
**SELECT:**
同じテーブル内でのカラム比較の一般構文は以下のとおりです:
```sql
SELECT * FROM tablename WHERE columnname1 = tablename.columnname2
```
**例**:
```sql
Select MovieName FROM Movies WHERE Actor = Movies.Producer
```
| MovieName |
| The White River Kid |
| Duplex |
| Oppenheimer |
**UPDATE:**
```sql
UPDATE Movies SET self_produced = "Yes" WHERE Actor = Movies.Producer
```
**DELETE:**
```sql
DELETE FROM Movies WHERE Actor = Movies.Producer
```
#### 異なるテーブルのカラムの比較
以下の構文に示すように、2つの異なるテーブルのカラムを比較することもできます:
```sql
SELECT tablename1.columnname1, tablename2.columnname1
FROM tablename2 LEFT JOIN tablename1 ON tablename2.columnname1 = tablename1.columnname2
WHERE tablename1.columnname1 = tablename2.columnname2
```
**例**:
```sql
SELECT Movies.name, Theatres.city from Theatres left join Movies on Theatres.ROWID = Movies.theatreID where Movies.distributionCity = theatre.city
```
| Name |
CIty |
| Dark Knight Rises |
Los Angeles |
| Titanic |
New York |
同様に、`UPDATE`および`DELETE`クエリの実行時に、2つの異なるテーブルに属するカラムを比較できます。
### WHERE句でのサブクエリ
サブクエリは、別のクエリ文の中に記述されるクエリです。Catalystでは、`WHERE`句を使用した単純な単一サブクエリを実行できます。`SELECT`、`UPDATE`、`DELETE`クエリで`WHERE`句を使用したサブクエリを記述できます。
`WHERE`句を使用したサブクエリの構文は以下のとおりです:
```sql
SELECT column_name FROM table_name WHERE column_name operator (SELECT column_name FROM table_name)
```
**サンプルデータベース**
Zylker Technologiesの従業員詳細は、[Data Store](https://docs.catalyst.zoho.com/ja/cloud-scale/help/data-store/introduction/)の*Zylker_Employee_DB*テーブルで管理されています。テーブルには以下のカラムと行が含まれています:
| ID |
Name |
Department |
Salary |
| ZT-001 |
Amelia Burrows |
Product Management |
15000 |
| ZT-2001 |
Bruce Wayne |
Sr. Management |
85000 |
| ZT-239 |
Clark Kane |
Media Relations |
85000 |
| ZT-4289 |
Michelle Mascarenhas |
Finance |
89000 |
最低給与の従業員よりも高い給与を受け取る従業員の給与と名前をリストするサブクエリ文の例を以下に示します:
```sql
SELECT Name, Salary FROM Zylker_Employee_DB WHERE Salary > (SELECT MIN (Salary) FROM Zylker_Employee_DB)
```
| Zylker_Employee_DB.Salary |
Zylker_Employee_DB.Name |
| 15000 |
Amelia Burrows |
| 85000 |
Bruce Wayne |
| 89000 |
Michelle Mascarenhas |
> **注意:**
* この機能は**ZCQL V2**でのみ利用可能です。
* **2024年12月1日**より、すべての[Org](https://docs.catalyst.zoho.com/ja/getting-started/catalyst-organizations/)の[開発環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/development-environment/)にある現在のすべてのプロジェクトは、自動的に**ZCQL V2 Parser**にマッピングされます。
* **2025年4月1日**より、*開発環境*で**ZCQL V2 Parser**にすでにマッピングされているすべての*Org*のすべてのプロジェクトは、プロジェクトの本番環境が有効化された場合、[本番環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/production-environment/)で自動的に**ZCQL V2 Parser**にマッピングされます。