IN、NOT INおよびBETWEEN QBE演算子
QBE演算子_in、_ninおよび_betweenを使用して、簡単な例でカー・レース・データセットから特定のデータをフィルタリングする方法について説明します。
_inおよび_nin演算子を使用すると、指定した配列に述語が存在するかどうかを比較およびチェックできます。
例3-9 _in演算子
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver (
check: {
name: {_in: ["Oscar Piastri", "Max Verstappen"]}
}
){
id: driver_id
name
points
}
');
前述の例では、driver表の各行について、nameフィールドが["Oscar Piastri", "Max Verstappen"]のいずれかであるかどうかを確認しています。結果がTRUEの場合、対応するドライバの詳細(この場合はid、nameおよびpoints)がフェッチされます:
DATA
--------------------------------------------------------------------------------
{
"id" : 105,
"name" : "Max Verstappen",
"points" : 456
}
{
"id" : 102,
"name" : "Oscar Piastri",
"points" : 384
}
2 rows selected._between QBE演算子は、配列で指定された2つの値の間に述語があるかどうかをチェックします:
例3-10 _between演算子
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver (
check: {
points: {_between: [300, 400]}
}
){
id: driver_id
name
points
}
');
このコードは、表driverにアクセスし、pointsが300と400の間にあるドライバをチェックし、id、nameおよびpointsを取得します。
DATA
--------------------------------------------------------------------------------
{
"id" : 102,
"name" : "Oscar Piastri",
"points" : 384
}
{
"id" : 103,
"name" : "Charles Leclerc",
"points" : 312
}
{
"id" : 104,
"name" : "Carlos Sainz Jr.",
"points" : 340
}
3 rows selected.