azure Mobile app query like sql 声明

azure Mobile app query like sql Statement

我正在使用 Azure 移动应用程序,这是我的 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 

而且我得到了很多记录。所以我不知道我做错了什么

您的 SQL 语句似乎不正确,您可能错过了 Members '%@friendId%'like 关键字。

我已经在我的 Azure 移动应用程序上测试了以下 SQL 语句,returns 没有。

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

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

var query = {
   sql: "SELECT * FROM test5 where name LIKE @name",
   parameters: [
     {name:"name",value:"%"+req.query.param1+"%"}
   ]
};

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

and i got many records. so i didn't know what i did wrong

根据您的描述,您的 Members 列似乎包含许多 GUID。您需要自己检查您的 table 记录,或者您可以使用有关您的记录的更多详细信息更新您的问题,以便我们缩小此问题的范围。