这有什么问题?(sqlite3)

2024-06-26 20:05:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

但我看不出有什么问题。有人能帮忙吗?你知道吗


Tags: fromexecutesurnamewhereselectstudentbehaviourforename
3条回答

使用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子句中无效。条件通常用ANDOR分隔。所以,这是无效的:

WHERE Forename=:oldForename, Surname=:oldSurname

其中之一是有效的:

WHERE Forename=:oldForename AND Surname=:oldSurname

WHERE Forename=:oldForename OR Surname=:oldSurname

在WHERE子句中使用逗号,应该使用and

相关问题 更多 >