获取id的SQL查询

时间:2017-08-24 05:30:14

标签: mysql node.js

我有一个国家表,其格式如下

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的第一行

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);

});