我想从服务器获取表
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);
使用
"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 中,不相关但在列名中使用大写字母并不是一个好主意。