[英]Node.JS is returning only a part of records for the MySQL "WHERE IN" clause
I am trying to execute the following GET
function.我正在尝试执行以下
GET
函数。
http://127.0.0.1:3000/sportfolioimages/getbyportfoliolist?portfolioid_list=69,70,71
My code is in Node.js, check below.我的代码在 Node.js 中,请查看下面的内容。
const mysql = require('mysql2');
const errorCodes = require('source/error-codes');
const PropertiesReader = require('properties-reader');
const prop = PropertiesReader('properties.properties');
const con = mysql.createConnection({
host: prop.get('server.host'),
user: prop.get("server.username"),
password: prop.get("server.password"),
port: prop.get("server.port"),
database: prop.get("server.dbname")
});
exports.getSellerPortfolioItemImagesByPortfolioList = (event, context, callback) => {
const params = event.queryStringParameters;
if (!params || portfolioid_list == null) {
context.callbackWaitsForEmptyEventLoop = false;
var response = errorCodes.missing_parameters;
callback(null, response)
}
else {
const portfolioid_list = event.queryStringParameters.portfolioid_list;
context.callbackWaitsForEmptyEventLoop = false;
const sql = "SELECT * FROM peresia.seller_portfolio_item_images WHERE idseller_portfolio_item IN (?)";
con.execute(sql, [portfolioid_list], function (err, result) {
console.log(sql);
if (err) {
console.log(err);
var response = errorCodes.internal_server_error;
callback(null, response);
}
else {
var response = {
"statusCode": 200,
"headers": {
"Content-Type": "application/json"
},
"body": JSON.stringify(result),
"isBase64Encoded": false
};
callback(null, response)
}
});
}
};
My code always returns whatever the values that is at the first of the list of values in my call.我的代码总是返回位于我调用中的值列表的第一个值的任何值。 Since my list of values are
69,70,71
it always returns only the records that matched 69
and and no records are returned for 70
and 71
even though there are records in the database.由于我的值列表是
69,70,71
它总是只返回匹配69
的记录,并且即使数据库中有记录,也不会返回70
和71
的记录。
So for an example, below is the result I get when the above GET
function is executed,.所以举个例子,下面是我在执行上面的
GET
函数时得到的结果。
[
{
"idseller_portfolio_item_images": 22,
"idseller_portfolio_item": 69,
"image_url": "https://database.com/portfolio/IMG_20211020_114254-1634730049335.jpg"
},
{
"idseller_portfolio_item_images": 23,
"idseller_portfolio_item": 69,
"image_url": "https://database.com/portfolio/IMG_20211020_114254-1634730049335.jpg"
},
{
"idseller_portfolio_item_images": 31,
"idseller_portfolio_item": 69,
"image_url": "https://peresia3.s3.us-east-2.amazonaws.com/portfolio/IMG_20211020_114254-1634730049335.jpg"
},
{
"idseller_portfolio_item_images": 32,
"idseller_portfolio_item": 69,
"image_url": "https://database/portfolio/IMG_20211020_114254-1634730049335.jpg"
}
]
If I just run the MySQL code directly in the database, I will be able to get the full set of records without an issue.如果我直接在数据库中运行 MySQL 代码,我将能够毫无问题地获得完整的记录集。
Why is this and how can I fix it?为什么会这样,我该如何解决?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.