2016-02-27 4 views
5
db.WorkbookQuestion.count({ 
    where: { 
    QuestionId: dbQuestion.id, 
    AnswerSelectedId: db.sequelize.col('CorrectAnswerId') 
    } 
}); 

Die Abfrage generiert diese SQL: SELECT count(*) AS "count" FROM "WorkbookQuestions" AS "WorkbookQuestion" WHERE "WorkbookQuestion"."QuestionId" = 1103 AND "CorrectAnswerId";Wie kann ich mit Sequelize nach zwei gleichwertigen Spalten suchen?

Wie kann ich es bekommen wie AnswerSelectedId = CorrectAnswerId mehr zu sein?

Antwort

7

Sie können es über sequelize.where():

db.WorkbookQuestion.count({ 
    where: sequelize.where(
    db.sequelize.col('CorrectAnswerId'), 
    db.sequelize.col('AnswerSelectedId') 
) 
}); 
+0

Was ist, wenn ich mehrere Klauseln haben möchte? – Shamoon

+0

@Shamoon Haben Sie versucht, die Bedingungen in ein Array zu setzen? Etwas wie: 'wo: [sequelize.where (..), sequelize.where (..)]'. Nicht getestet - wird tatsächlich experimentieren, wenn dies nicht funktioniert. Vielen Dank. – alecxe

+0

Die Verwendung von 'where: [sequelize.where (..), sequelize.where (..)]' verursacht einen Fehler "sql.replace is not a function". – NobleUplift

5

Ich war eine Zeit lang auf diese stecken heute, bis ich diese Antwort gefunden. Ich habe auch einen anderen Weg gefunden, die gleiche Frage zu stellen, also werde ich hier eine andere Antwort hinterlassen.

db.WorkbookQuestion.count({ 
    where: { 
    CorrectAnswerId: { 
     $col: 'AnswerSelectedId' 
    } 
    } 
}); 
Verwandte Themen