我有以下MySQL查询:
SELECT COUNT(billable_size),
SUM(billable_size),
MIN(billable_size),
MAX(billable_size)
FROM inv_files
WHERE billable_size >= %s
AND billable_size < %s
billable_size
列是BIGINT
,其值的SUM()
最高可达1e + 14。
当我使用简单的字符串插值运行此查询时 -
cursor = cnx.cursor()
cursor.execute(query_sql % (from_size, to_size))
- MySQL Connector / Python正确地将sum值作为Python Decimal
返回。
但是当我尝试将其作为预备声明运行时 -
cursor = cnx.cursor(prepared=True)
cursor.execute(query_sql, (from_size, to_size))
- 总和反而作为bytearray
返回,导致任何数量的麻烦。 (显然MySQL returning byte arrays when it should return something else存在一些已知问题?也许我认为自己很幸运,它适用于普通的字符串插值。)
是否有SQL&#34;类型提示&#34;或者其他一些方法我可以让MySQL Connector / Python正确返回正确的类型?