ORとANDを絡めたネストでのデータ取得をレポートから行いたいのですが、
実行してもうまく動作しないため、ORのネストの条件を有効にする方法について教えてください
想定としてはネストの中身も条件になってほしいのですが、条件にならず、抽出結果はネストの部分は無視されて取得されています
<やりたいこと>
データレポートから、項目Aが5 かつ 以下の文字カラム条件のどちらかに該当するレコードを引く
文字カラム1 = 画面入力値 AND 文字カラム2 = Null (文字カラム1だけある場合)
文字カラム1 = 画面入力値 AND 文字カラム2 = 画面入力値 (両方にある場合)
{
“conditions”: [
{“id”: “項目A”, “search_value”: [“5”], “exact_match”: true},
{
“conditions”: [
{
“conditions”: [
{
“conditions”: [
{“id”: “文字カラム1”, “search_value”: [画面入力値,画面入力値], “exact_match”: true},
{“id”: “文字カラム2”, “search_value”: [], “exact_match”: true},
],
“use_or_condition”: false // AND検索
} ,
{
“conditions”: [
{“id”: “文字カラム1”, “search_value”: [画面入力値,画面入力値], “exact_match”: true},
{“id”: “文字カラム2”, “search_value”: [画面入力値,画面入力値], “exact_match”: true},
],
“use_or_condition”: false // AND検索
}
],
“use_or_condition”: true // OR検索
}
],
“use_or_condition”: false, // AND検索
“page”: 1,
“per_page”: 0, // return all
“use_display_id”: true,
“return_number_value”: true
}
<やりたいことのSQLイメージ>
SELECT *
FROM データレポート
WHERE
項目A=5 AND
((文字カラム1 = 画面入力値 AND 文字カラム2 = ‘’) OR
(文字カラム1 = 画面入力値 AND 文字カラム2 =画面入力値 ))
現在の実装だと、ネストの中の条件が効いておらず、
{“id”: “項目A”, “search_value”: [“5”], “exact_match”: true},の条件が有効で
ネストの記載条件はないもと見なされて取得されています
ネストの条件を有効にする方法を教えて頂けますでしょうか
関連