【问题标题】:Is there a way to select multiple fields from a database?有没有办法从数据库中选择多个字段?
【发布时间】:2019-02-01 19:52:14
【问题描述】:

问题:选择多个数据库字段。

app.get("/", function(req, res){
 var q = 'SELECT COUNT(*) as count FROM items';
 connection.query(q, function (error, results) {
 if (error) throw error;
 var count= results[0].count;
 res.render("home", {count:count});
 });
});

这是我正在工作的路线。就像现在一样,它有效。但我找不到如何从项目表中获取其余值,例如名称和价格。请帮忙。

【问题讨论】:

  • 听起来您是 SQL 新手。我将从 mysql 文档开始。这是 SELECT 文档。 dev.mysql.com/doc/refman/8.0/en/select.html
  • 由于您要选择行数的计数(使用 COUNT() 函数),因此您不能同时选择实际的字段值。因此,您要么取回行数,要么取回行的实际内容,例如使用SELECT name, price FROM items
  • 这是更好的答案。我的甚至都不会工作

标签: mysql node.js variables


【解决方案1】:

当然,SELECT COUNT(*) AS count FROM items; 只返回一行,其中一列名为 count。该列包含一个数字; items 表中的行数。这就是你要求的。

如果您想了解详细信息,可以尝试SELECT * FROM items; 作为您的查询。在这种情况下,result 包含一个对象数组,检索到的每一行都有一个对象。

尝试这样的事情(未调试):

app.get("/", function(req, res){
 var q = 'SELECT * FROM items;';
 connection.query(q, function (error, results) {
 if (error) throw error;
 var count= results.length;
 for (let i = 0; i < results.length; i++) {
   let row = results[i];
   /* don't know what's in your rows, therefore I give you console.log */
   console.log ('row', i, row);
 }
 res.render("home", {count:count});
 });
});

专业提示:避免使用SELECT *。而是给出你想要的列的列表。

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多