Что не так с этим? (Sqlite3)
recordCheck = c.execute("SELECT * FROM Student, Behaviour WHERE Forename=:oldForename, Surname=:oldSurname, YearGroup=:oldYearGroup, FormNumber=:oldFormNumber, Date=:oldDate, BehaviourType=:oldBehaviourType", {"oldForename":oldForename, "oldSurname":oldSurname, "oldYearGroup":oldYearGroup, "oldFormNumber":oldFormNumber,"oldDate":oldDate,"oldBehaviourType":oldBehaviourType})
Это возвращает эту ошибку:
OperationalError: near ",": syntax error
Но я не вижу, что с этим не так. Кто-нибудь может помочь?
3 ответа
Решение
Запятая не действительна в where
пункт. Условия обычно разделяются AND
или же OR
, Итак, это неверно:
WHERE Forename=:oldForename, Surname=:oldSurname
Один из них будет действительным:
WHERE Forename=:oldForename AND Surname=:oldSurname
WHERE Forename=:oldForename OR Surname=:oldSurname
Использование WHERE X=Y AND Y=Z
не WHERE X=Y, Y=Z
recordCheck = c.execute("SELECT * FROM Student, Behaviour WHERE Forename=:oldForename AND Surname=:oldSurname AND YearGroup=:oldYearGroup AND FormNumber=:oldFormNumber AND Date=:oldDate AND BehaviourType=:oldBehaviourType", {"oldForename":oldForename, "oldSurname":oldSurname, "oldYearGroup":oldYearGroup, "oldFormNumber":oldFormNumber,"oldDate":oldDate,"oldBehaviourType":oldBehaviourType})
Вы используете запятые в предложении WHERE, и вы должны использовать AND.