1

海吉

我的 SQL 技能非常有限,所以我需要一些帮助。

我在 Azure MobileService 表中有一个人们可以投票的元素表。看起来像:

表名


                                   ID | Content | Votes |

从这张表中,我想获得票数最高的 20 个元素。如果有些人的票数相同,它应该只选择其中之一。最佳方案是我通过 GET 发布到 MobileService API 可以选择最高投票范围,这样的新调用将获得接下来的 20 个元素。

Azure 中的 API 如下所示:

    exports.get = function(request, response) { 
        //some code
        response.send();
    }

并且可以调用

    var results = await App.MobileService.InvokeApiAsync<Class>("APIname", System.Net.Http.HttpMethod.PostorGet, DictionaryOfInformationSendToTheAPI);

所以我想要的是我发送一个 HttpMethod.Get 命令,在那里我将字典中我想要的范围发送到 API 调用。然后,API 调用将响应从表tableName获取信息,方法是返回 ID 或整行。

我不知道怎么做,所以这里只是猜测最大但希望有人可以帮助我创建这个命令,比如

    exports.get = function(request, response) { 
    //Not working so just a guess
        var sqlSpecs = "READ from tableName WHERE votes is" + request.rangeMax + " to " + request.rangemin;
        mssql.query(sqlSpecs, {
         success: function(items)
            {
                console.log("ok");
                response.send(items);
            },
            error: function(err)
            {
                console.log("there was a problem finding the Specified range" + request.rangeMax + " to " + request.rangemin, "" + err);
            }
        });
    }

最后,我当然对如何更智能地访问它的其他想法持开放态度。也许还有一张前 20 名的额外桌子?但对我来说问题是基础设施会更大,因此认为 SQL 命令必须更智能。但请加入,用想法。

4

2 回答 2

1

您可以像这样访问您的表:

exports.get = function(request, response) {    
    var myTable = request.service.tables.getTable('tableName');
    // Do something with the table here…
};

或者您可以完全按照您的方式执行查询:

exports.get = function(request, response) 
{    
    mssql.query('select top 20 * from tablename', 
    {
      success: function(results) 
      {
         console.log(results);
      },
      error: function(err) 
      {
                console.log("error is: " + err);
      }
   });
}
于 2013-09-30T16:52:28.330 回答
1
exports.get = function(request, response) {    
    var collectionOfVotes = request.service.tables.getTable('CollctionOfVotes');
    collectionOfVotes.orderByDescending('Votes')
    .read({ success: function(results) { 
        results.forEach(function(r) {
                console.log(r);
            });
    }});
};

or

exports.get = function(request, response) 
{    
    mssql.query('select top 20 * from CollctionOfVotes order by Votes desc', 
    {
      success: function(results) 
      {
            results.forEach(function(r) {
                console.log(r);
            });
      },
      error: function(err) 
      {
                console.log("error is: " + err);
      }
   });
}
于 2013-10-02T12:58:31.527 回答