如何将多个数据传递到JSON.stringify

问题描述 投票:0回答:1

我想从服务器获取表

UserId
中2个字段
Name
Users
的数据,
所以我创建了一个请求,使用
@UserIdList
参数将数据传递到服务器以执行 postgresql 查询。

SELECT a."UserId",
       a."Name"
FROM public."Users" AS a
WHERE a."UserId" IN (@UserIdList)
ORDER BY a."UserId";

我想要获取

3 UserIds (6,62,63)
的数据,但是返回的结果只是
UserId 63

我研究过但不知道如何传递数据来获取
3 UserIds (6,62,63)

的数据 可以吗?
如果有人有任何建议,我将不胜感激。谢谢!

我目前的要求:

// Create a request URL
const apiUrlSql = 'http://127.0.0.1/test/api/sql';
const requestDataSql = JSON.stringify({
    "ApiVersion": 1.1,
    "ApiKey": "ApiKey",
    "Name": "GetNameMultiple",
    "Params": {
        "UserIdList": (6,62,63)
    }
});     

// Create object XMLHttpRequest
const xhrSql = new XMLHttpRequest();

// Setting request
xhrSql.open('POST', apiUrlSql, true);
xhrSql.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');

// Process request
xhrSql.onload = function() {
    if (xhrSql.readyState == 4 && xhrSql.status == 200) {
        // successful
        const responseJson = JSON.parse(xhrSql.responseText);
        console.log(responseJson);

    } else {
        // failed
        console.error('Request error:', xhrSql.statusText);
    }
};
// Run request
xhrSql.send(requestDataSql);

postgresql xmlhttprequest
1个回答
0
投票

使用

"Params": {
        "UserIdList": "6,62,63"
    }

SELECT a."UserId",
       a."Name"
FROM public."Users" AS a
WHERE a."UserId" = any(('{'||@UserIdList||'}')::int[])
ORDER BY a."UserId";

在 PostgreSQL 中,不相关但在列名中使用大写字母并不是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.