我有一个Json对象,想要循环它。在我的循环中,我想执行一个select查询并将结果保存到另一个json数组。
所以我从一个循环开始,执行一个mysql查询,并希望只记录结果:
for (var x = 0; x < obj.length; x++) {
var query = connection.query('SELECT Id, date FROM tbl1 WHERE Id LIKE '+ mysql.escape(obj[x].ident) +'; SELECT Id, date FROM tbl WHERE Id LIKE '+ mysql.escape(obj[x].ident) +' ORDER BY date DESC Limit 1 offset 1', function (error, results, fields) {
if (error) {throw error;}
if (!error) {
console.log("resultset"+results); //<- Here I get the right result
console.log("ID: "+results[0].Id); //<- UNDEFINED
console.log("ID-LAST-entry: "+ results[1].Id); //<- UNDEFINED
} });
问题是对于展位结果(0和1)我得= UNDEFINED。
我的错误在哪里?
答案 0 :(得分:1)
根据results
的值,您可以看到它是不 array of objects
而不是array
arrays where each item is an object
。
您需要迭代内部数组才能获得Id
。请参阅下面的代码段。将结果解析为JSON,然后读取所需的数据。
if (!error) {
var parsedResults = JSON.parse(JSON.stringify(results));
var outerArraySize = parsedResults.length;
for (var outerIndex = 0; outerIndex < outerArraySize; ++outerIndex) {
var innerArraySize = parsedResults[outerIndex].length;
for (var innerIndex = 0; innerIndex < innerArraySize; ++innerIndex)
console.log("ID: " + parsedResults[outerIndex][innerIndex].Id);
}
}