将SQL查询转换为Android Azure Mobile Service查询

时间:2015-04-01 13:10:18

标签: android azure azure-mobile-services

我有一个在Azure SQL数据库中工作正常的查询,但我正在尝试在我的Android应用程序中使用它,我无法让它正常工作。这是为了及时找到预订的重叠。这是带有一些虚拟数据的SQL查询,到达和离开都是整数:

Select * from bourguestMob.tableObjectBookings
where tabObjID = 28
and day = 30
and month = 3
and year  = 2015
and ((arrival <= 1600 and depart > 1600)
or (arrival< 1800 and depart >= 1800)); 

使用提供的移动服务,我必须使用以下内容:

tableObjectBookingsTable.where().field("tabObjID").eq(tables.get(i).getId())
.and().field("day").eq(day).and().field("month").eq(month).and().field("year").eq(year)
.and().field("arrival").lt(intTime).or().field("arrival").eq(intTime).and().field("depart").gt(intTime)

这就是我的部分内容,但我认为查询的某些部分需要嵌套才能正确评估。

1 个答案:

答案 0 :(得分:0)

我认为您想要的是将查询的结尾更改为:

.and(field("arrival").lt(intTime).or()
  .field("arrival").eq(intTime).and().field("depart").gt(intTime))

帮助我查看oData字符串以检查是否正确,请查看一些复杂查询的示例:

https://github.com/Azure/azure-mobile-services/blob/master/sdk/android/test/sdk.testapp.tests/src/com/microsoft/windowsazure/mobileservices/sdk/testapp/test/MobileServiceQueryTests.java#L724