希望我能正确地解释这一点。我正在尝试接受一条MySQL SELECT语句,将输出放入一个列表中,然后将该列表上传回MySQL服务器。
- cursor.execute("SELECT stuff FROM place WHERE thing = 3 ORDER BY track_id ASC")
这会产生一个整数元组。
((1L,),(2L,),(3L,),(4L,),(5L,),(6L,),(7L,),(8L,),(9L,),(10L,),(11L,))
..。每个字母后面都有一个'L'。
但我想用以下设置更新数据库:
1、2、3、4、5、6、7、8、9、10、11
起初,我以为我知道了,但转换后的每一行元组都是一样的,即使实际提取的数据发生了变化。有谁知道怎么做吗?
# 回答1
听起来像是要将包含长整型的元组转换成整型?
- for t in ((1L,), (2L,), (3L,), (4L,), (5L,), (6L,), (7L,), (8L,), (9L,), (10L,), (11L,)):
- print int(t[0])
# 回答2
格伦顿,谢谢你的回复。实际上,我拿到的是不带L的名单。但这只是事情的一半。我需要将这些数字转储回一个列表,并将该列表插入MySQL数据库。
我认为在这一点上,PHP将提供比Python更好的解决方案。
# 回答3
实际上,是我自己想出来的.
- for n in range(0,75):
- cursor.execute("SELECT row FROM table WHERE column = %s ORDER BY column ASC", (n))
- result = cursor.fetchall()
- List = list()
- for t in result:
- List.append(int(t[0]))
- List = ",".join(map(str,List))
- ListUpdate = cursor.execute("UPDATE table SET column = %s WHERE column = %s", (str(List),n))
-
这将把MySQL中的SELECT语句作为元组,将其格式化为不带L或圆括号的列表,然后使用该列表更新MySQL。