我想在MySQL中编写一个用于过滤的查询。例如,如果表table1中有一列id,其中id的过滤器值来自POST请求主体,保存在变量A中。如果A不为空,我希望提取匹配的行,否则返回所有行。我不确定是否要将IN与WHERE一起使用。 SELECT * FROM table1 WHERE id IN (A) 一种选择是返回数据库中的所有行并使用JavaScript过滤器,但我不想返回所有行并将整个表公开给用户。
var your_post = [1, 2, 3];
var A = your_post.join();
if (A == '') {
var sql = 'SELECT * FROM table1';
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
} else {
var sql = 'SELECT * FROM table1 WHERE id IN (?)';
con.query(sql, [A], function (err, result) {
if (err) throw err;
console.log(result);
});
}
1条答案
按热度按时间lrpiutwd1#
如果您使用javascript,请使用
A.join()
,并清理POST。