Эта проблема относится к узлу-mysql.Запрос нескольких строк с помощью node-mysql
У меня, кажется, проблема со следующим кодом, и, похоже, это связано с использованием пользовательских переменных. Полученный запрос выполняется нормально внутри любой IDE mysql, возвращая несколько записей. Однако при выполнении node-mysql он возвращает только одну запись.
Я проверил, что исключение предложения WHERE, задающего T3.gender_rank, создает прогнозируемые результаты как в узле-mysql, так и в моей mysql IDE.
Была ли эта проблема поднята раньше, или это что-то, что я делаю неправильно?
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
что в '' data' и getSimpleDate'? –