azure移动应用程序查询,如sql语句

时间:2018-06-15 11:40:17

标签: javascript node.js azure azure-sql-database azure-mobile-services

我正在使用Azure Mobile应用程序,这是我的SQL语句

return new Promise((resolve, reject) => {
        var query = {
            sql: "SELECT Id FROM Groups WHERE Members LIKE '%@userId%' and Members '%@friendId%' and type = @roomType ",
            parameters: [
                { name: 'userId', value: userId},
                { name: 'friendId', value: friendId },
                { name: 'roomType', value: type }
            ]
        };    

        context.data.execute(query)
            .then(function (results) {
                resolve(results);
            }).catch(error => { reject (error);});
    });

然后我转到SQL并填写所有这样的变量

SELECT Id FROM Groups Where Members LIKE '%05adf56b-c128-4203-802f-d8d0e2916210%' and Members LIKE '%21B69402-7E9C-4BA3-99A8-6D84A96FA866%' and type = 0 

我有很多记录。所以我不知道自己做错了什么

1 个答案:

答案 0 :(得分:1)

您的SQL语句似乎不正确,您可能会错过like的{​​{1}}关键字。

我已经在我的azure移动应用上测试了以下SQL语句,它什么也没有返回。

Members '%@friendId%'

经过一些试验,我发现以下语句可以按预期工作:

SELECT Id FROM Groups WHERE Members LIKE '%@userId%'
  

从成员为'%05adf56b-c128-4203-802f-d8d0e2916210%'和成员为'%21B69402-7E9C-4BA3-99A8-6D84A96FA866%'且类型= 0的组中选择ID      

我有很多记录。所以我不知道我做错了什么

根据您的描述,您的var query = { sql: "SELECT * FROM test5 where name LIKE @name", parameters: [ {name:"name",value:"%"+req.query.param1+"%"} ] }; 列似乎包含许多GUID。您需要自己检查表格记录,或者可以使用有关记录的更多详细信息来更新问题,以便我们缩小此问题的范围。