mysql-python 的 bigint 格式说明符
format specifier for bigint of mysql-python
我的主键声明为:
id bigint PRIMARY KEY
我想提取某个id,想进一步使用它。
localid = cursor.fetchone()[0]
print type(localid)
query1 = ("Select * from table_name WHERE id= %d;")
cursor.execute(query1, localid)
query2 = ("Select * from table_name WHERE id= 1;")
cursor.execute(query2)
type(localid)
当前打印为 int
,其中获取的值仅为 2 或 3 或 45。
- query1 不起作用,而 query2 起作用。
%d
是正确的说明符吗?我不这么认为。
- 如果取到的数字确实超出了正常
int
的范围,%d
对吗?如果没有,用什么?
额外信息:Mysql-python 使用了连接器包。 Python2.7
如果您正在使用 MySQLdb
,您可能只需要 execute
函数中的 %s
。
你的 Mysql-python 确实是 MySQLdb
。
解决方案 1`:
query1 = ("Select * from table_name WHERE id= %s;")
cursor.execute(query1, (localid,))
Note: If args is a sequence, then %s must be used as the
parameter placeholder in the query. If a mapping is used,
%(key)s must be used as the placeholder.
解决方案2:
query1 = ("Select * from table_name WHERE id= %d;" % localid)
cursor.execute(query1)
Mysqldb.cursors
中的详细说明
class BaseCursor(__builtin__.object)
| A base for Cursor classes. Useful attributes:
|
| description
| A tuple of DB API 7-tuples describing the columns in
| the last executed query; see PEP-249 for details.
|
| description_flags
| Tuple of column flags for last query, one entry per column
| in the result set. Values correspond to those in
| MySQLdb.constants.FLAG. See MySQL documentation (C API)
| for more information. Non-standard extension.
|
| arraysize
| default number of rows fetchmany() will fetch
|
| Methods defined here:
| execute(self, query, args=None)
| Execute a query.
|
| query -- string, query to execute on server
| args -- optional sequence or mapping, parameters to use with query.
|
| Note: If args is a sequence, then %s must be used as the #notice
| parameter placeholder in the query. If a mapping is used,
| %(key)s must be used as the placeholder.
|
| Returns long integer rows affected, if any
|
我的主键声明为:
id bigint PRIMARY KEY
我想提取某个id,想进一步使用它。
localid = cursor.fetchone()[0]
print type(localid)
query1 = ("Select * from table_name WHERE id= %d;")
cursor.execute(query1, localid)
query2 = ("Select * from table_name WHERE id= 1;")
cursor.execute(query2)
type(localid)
当前打印为int
,其中获取的值仅为 2 或 3 或 45。- query1 不起作用,而 query2 起作用。
%d
是正确的说明符吗?我不这么认为。- 如果取到的数字确实超出了正常
int
的范围,%d
对吗?如果没有,用什么?
额外信息:Mysql-python 使用了连接器包。 Python2.7
如果您正在使用 MySQLdb
,您可能只需要 execute
函数中的 %s
。
你的 Mysql-python 确实是 MySQLdb
。
解决方案 1`:
query1 = ("Select * from table_name WHERE id= %s;")
cursor.execute(query1, (localid,))
Note: If args is a sequence, then %s must be used as the
parameter placeholder in the query. If a mapping is used,
%(key)s must be used as the placeholder.
解决方案2:
query1 = ("Select * from table_name WHERE id= %d;" % localid)
cursor.execute(query1)
Mysqldb.cursors
class BaseCursor(__builtin__.object)
| A base for Cursor classes. Useful attributes:
|
| description
| A tuple of DB API 7-tuples describing the columns in
| the last executed query; see PEP-249 for details.
|
| description_flags
| Tuple of column flags for last query, one entry per column
| in the result set. Values correspond to those in
| MySQLdb.constants.FLAG. See MySQL documentation (C API)
| for more information. Non-standard extension.
|
| arraysize
| default number of rows fetchmany() will fetch
|
| Methods defined here:
| execute(self, query, args=None)
| Execute a query.
|
| query -- string, query to execute on server
| args -- optional sequence or mapping, parameters to use with query.
|
| Note: If args is a sequence, then %s must be used as the #notice
| parameter placeholder in the query. If a mapping is used,
| %(key)s must be used as the placeholder.
|
| Returns long integer rows affected, if any
|