我试图在SQL中计算一点“复杂”的计算。我正在用Python编程并使用sqlite3。
我需要获得第一条记录(称为s say),其lat和lng字段介于2个值之间 类似的东西:
s.lat< = LAT< = s.lat + alpha and s.lng< = LNG< = s.lng + beta
我试过写这个: lt,lg,alpha和beta是浮点变量
c.execute('SELECT * FROM squares WHERE (lat <= ? and ? <= lat + ? and long <= ? and ? <= long + ? ',(lt,lt,alpha,lg,lg,beta))
rslt =c.fetchone()
print rslt
它引发异常
非常感谢,
萨拉
答案 0 :(得分:0)
邓肯正确地指出了括号。另外,我会使用“BETWEEN”命令而不是你的行:
c.execute('SELECT * FROM squares WHERE (lat BETWEEN ? AND ?+? AND long BETWEEN ? AND ?+?'),(lt,lt,alpha,lg,lg,beta))