我很确定我错过了一些愚蠢的小事,但它让我无法继续前进。我收到此错误
“DatabaseError at / no此类函数:SQRT”,
我在mod等所有数学函数上都出现了这样的错误......所以我有点困惑。 sqlite3没有数学函数,我觉得这有点荒谬,或者我只是愚蠢的O_O
def check_difference(self):
cursor = connection.cursor()
cursor.execute("SELECT t1.id, COUNT(t1.id) AS rep, MAX(t3.right_key) AS max_right \
FROM cms_Book AS t1, cms_Book AS t2, cms_Book AS t3\
WHERE t1.left_key <> t2.left_key \
AND t1.left_key <> t2.right_key \
AND t1.right_key <> t2.left_key \
AND t1.right_key <> t2.right_key \
GROUP BY t1.id \
HAVING max_right <> SQRT(4 * rep + 1) + 1 ")
q = cursor.fetchall()
return q
答案 0 :(得分:2)
SQRT
在sqlite3中通过扩展程序提供:
extension-functions.c
该库将提供常见的数学和字符串函数 使用操作系统库或提供的SQL查询 定义。它包括以下功能:
数学:acos,asin,atan,atn2,atan2,acosh,asinh,atanh,difference, 度,弧度,cos,罪,棕褐色,婴儿床,cosh,sinh,tanh,coth,exp, log,log10,power,sign, sqrt ,square,ceil,floor,pi。
请注意,默认情况下,扩展加载机制可能已关闭(出于安全原因 - 请参阅ticket #1863) - 因此您需要从源代码重新编译sqlite3。在 autoconf 分发中,默认情况下启用扩展加载。
答案 1 :(得分:0)