首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node-mysql查询多行

使用node-mysql查询多行
EN

Stack Overflow用户
提问于 2013-07-06 12:07:18
回答 1查看 1.5K关注 0票数 0

此问题与node-mysql有关。

我似乎在使用以下代码时遇到了问题,这似乎与用户定义变量的使用有关。呈现的查询可以在任何mysql IDE中正常运行,返回多条记录。然而,当由node-mysql执行时,它只返回一条记录。

我已经证实,消除WHERE子句并指定T3.gender_rank在node-mysql和mysql IDE中都会产生可预测的结果。

这个问题以前有人提过吗,或者是我做错了什么?

代码语言:javascript
复制
var mysql = require('mysql'); // Establish SQL Support
var sql =
    "select team, `div`, sum(points) AS teampoints "+
    "from ( "+
    "   select "+
    "       *, "+
    "       (@genderRank := CASE WHEN @genderTMP <> gender THEN 1 ELSE @genderRank+1 END) AS gender_rank, "+
    "       (@genderTMP := gender) AS _gt "+
    "   from ( "+
    "       select * "+
    "       from racepoints "+
    "       WHERE "+
    "           ltrim(rtrim(race)) = '"+data.eventName+"' AND "+
    "           racedate = '"+getSimpleDate(new Date(data.eventStart))+"' "+
    "       ORDER BY team,gender,points DESC "+
    "   ) T1, "+
    "   (select @genderRank:=0 AS gender_rank_start) T2 "+
    ") T3 "+
    "WHERE "+
    "   (T3.gender_rank <= 4 AND rtrim(ltrim(`div`)) = 'D2') OR "+
    "   (T3.gender_rank <= 3 AND rtrim(ltrim(`div`)) = 'D1') "+
    "GROUP BY team, `div` "+
    "ORDER BY `div`, teampoints DESC, team";


var db = new mysql.createConnection({
    host : 'localhost',
    user : 'root',
    password : 'admin',
    database : 'nps',
    multipleResults : true
});
db.connect();
db.query(
    sql,
    function(err,rows,fields){
        if(err){
            console.log(err);
            return;
        }
        console.log(rows);
    }
);
db.end();

SQL数据库文件也可从以下位置获得:https://snipt.net/download/dde8b4b5ce8cd5fca21ac2334bae634f/-5369.sql

EN

回答 1

Stack Overflow用户

发布于 2013-07-07 02:14:08

不是直接将变量添加到sql字符串中,而是让mysql包为您完成此操作。这通常可以解决像这样的问题,还可以防止SQL注入。

这是使用问号(每个变量一个)和一个变量数组来完成的。

例如

代码语言:javascript
复制
connection.query('SELECT * FROM users WHERE id = ?', [userId], function(err, results) {
  // ...
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17499560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档