Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
157 views
in Technique[技术] by (71.8m points)

javascript - results.length is not give the correct output for MySQL query?

Why the length of result of MySQL query is not correct? The query is just count the number of message column in database and print the length.

the code:

connection.query("SELECT COUNT(message) as total FROM `counter`", (err, results) => {
    if(err) throw err;
    console.log(results);
    console.log("the length of result:", results.length);

the output:

[ RowDataPacket { total: 4 } ]
the length of result: 1

The correct length is 4 not 1.

How to correct that, please?

question from:https://stackoverflow.com/questions/65875718/results-length-is-not-give-the-correct-output-for-mysql-query

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

results contains the rows returned as an array. Since you're using SELECT COUNT(message), you're querying for the count of messages, which returns one row. This one row contains the result, which is an object of shape { total: 4 } - where the total comes from the as total part of your SQL query.

To get the actual result, check that results.length > 0 and then you can access results[0].total:

if (results.length > 0) {
  console.log('Total:', results[0].total)
} else {
  throw new Error('No results returned from query!')
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...