我有一个国家表,其格式如下
id name
1 at
2 be
3 ch
...
我正在尝试通过在名称列上使用WHERE子句来执行查询,其中我可以获取所有id值的列表
var countryIDQuery = "SELECT `id` FROM `country` WHERE `name` = ?";
connection.query(countryIDQuery, countriesObj , function (err, result) {
if(err){
console.error("Country Table Error:", err.stack);
}
console.log(result);
});
countriesObj
表示所有国家/地区的数组,但我看到的唯一结果是id = 1的第一行
答案 0 :(得分:1)
我想你想使用 IN 。
SELECT `id` FROM `country` WHERE `name` IN (?)
如果您的连接对象不支持数组,那么
var queryList = [];
for (var country in countriesObj) {
queryList.push("?");
}
var countryIDQuery = "SELECT `id` FROM `country` WHERE `name` IN ("+queryList.join(",")+")";
connection.query(countryIDQuery, countriesObj , function (err, result) {
if(err){
console.error("Country Table Error:", err.stack);
}
console.log(result);
});
或者,如果它确实支持数组,那么
var countryIDQuery = "SELECT `id` FROM `country` WHERE `name` IN (?)";
connection.query(countryIDQuery, [countriesObj] , function (err, result) {
if(err){
console.error("Country Table Error:", err.stack);
}
console.log(result);
});