等しいおよび等しくないのQBE演算子
QBE演算子_eqおよび_neを使用して、簡単な例でカー・レース・データセットから特定のデータをフィルタリングする方法について説明します。
特定のチームの詳細をフェッチするシナリオについて考えてみます。_eq QBE演算子比較を使用すると、検索する特定のチームの名前と名前が等しいかどうかをチェックし、そのチームの詳細をフェッチできます。
例3-3 _eq演算子
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
team (
check: {
name: {_eq: "Ferrari"}
}
) {
id: team_id
name
points
}
');
このコードは、team表にアクセスし、「Ferrari」という名前のチームのみのid、nameおよびpointsをフェッチします。
DATA
--------------------------------------------------------------------------------
{
"id" : 302,
"name" : "Ferrari",
"points" : 652
}
1 row selected.簡略化された構文を使用することもできます。この構文では、
name: {_eq: "Ferrari"}ではなくname: "Ferrari"を使用するだけで、同じ出力が生成されます:SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
team (
check: {
name: "Ferrari"
}
) {
id: team_id
name
points
}
');または、「McLaren Mercedes」という名前のチームの詳細をフェッチすることもできます。さらに、チーム内の「Oscar Piastri」以外のドライバを見つけます。
例3-4 _ne演算子
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
team (
check: {
name: "McLaren Mercedes"
}
){
id: team_id
name
points
drivers: driver (
check: {
name: {_ne: "Oscar Piastri"}
}
) {
name
points
}
}
');
この例では、2つのフィルタを使用しています。1つ目はチームの名前に基づいてチームをフィルタリングし、2つ目は「Oscar Piastri」と等しくないドライバ名を特定します:
DATA
--------------------------------------------------------------------------------
{
"id" : 301,
"name" : "McLaren Mercedes",
"points" : 666,
"drivers" :
[
{
"name" : "Lando Norris",
"points" : 282
}
]
}
1 row selected.