2016-07-08 1 views
1

"and"と "or"条件を使ってデータをフィルタリングしようとしています。 私は、このMySQLのクエリを取得したいと思います:Strongloop:[と]と[または]の条件を合わせたデータをフィルタする

SELECT * FROM `data` WHERE ((`property1`=11) OR (`property1`=13)) AND (`property2`=6) 

私が書いたのREST APIは、このようなものです:

http://localhost:4000/api/Data/?filter[where][or][0][property1]=11&filter[where][or][1][property1]=13&filter[where][and][0][property2]=6 

ループバックJSONの翻訳が正しいと思わ:

{            
    "or": [        
      {        
        "property1": 11  
      },       
      {        
        "property1": 13  
      }        
    ],         
    "and": [        
      {        
        "property2": 6  
      }        
    ]          
} 

しかし、mySqlの翻訳クエリは次のとおりです。

SELECT * FROM `data` WHERE (`property1`=11) OR (`property1`=13) AND (`property2`=6) 

どうしたのですか?

+0

あなたはand' 'に' or'をカプセル化する必要があります。 – Jain

答えて

0

正しいフィルタは次のようである:

{  
    "and": [ 
     {        
      "property2": 6  
     } , 
     { 
     "or": [        
      {        
        "property1": 11  
      },       
      {        
        "property1": 13  
      }        
    ] }  
    ]        
} 
+0

Ebrahimありがとうございます。 jsonの構造ははっきりしていますが、私はapi rest callからこのjsonを得る方法を理解していません。 –

+0

@FrancescoDeRosaおそらく 'filter [where] [and] [0] [or] [0] [property1] = 11&filter [where] [and] [0] [or] [1] [property1] = 13&filter [where] [ and] [1] [property2] = 6' –

関連する問題