使用python从Mysql表中查询和检索数据

时间:2015-05-23 09:58:46

标签: python mysql

我正在尝试使用python从mysql表中检索数据,但一直收到错误。请参阅下面的我的尝试和数据:

import MySQLdb
# connect
db = MySQLdb.connect(host="localhost", user="root", passwd="xxxxxxx", db="world")
cursor = db.cursor()
t=['red', 'yellow']

for x in t:
    cursor.execute("select * from mytable where colours=%s," [x])

我收到以下错误:TypeError: string indices must be integers, not str

我学习了Mysql将数据存储为元组,因此我需要将%s更改为元组但不知道如何。

有什么建议吗?感谢。

2 个答案:

答案 0 :(得分:2)

尝试此操作并检查这是否可以解决您的问题

import MySQLdb
# connect
db = MySQLdb.connect(host="localhost", user="root", passwd="xxxxxxx", db="world")
cursor = db.cursor()
t=['red', 'yellow']

for x in t:
    cursor.execute("select * from mytable where colours=%s" % repr(x))

请注意,此处Sql Query将构建为

select * from mytable where colours='red'   #which is actual and correct query

虽然我还没有测试过,但可能有其他方法可以做到这一点。 OP问题的实际问题是它构建Sql Query之类的

select * from mytable where colours=red  # Check the missing quotation around text red

答案 1 :(得分:0)

您希望迭代t中的元素。因此,您不需要[]周围的x

import MySQLdb
# connect
db = MySQLdb.connect(host="localhost", user="root", passwd="xxxxxxx", db="world")
cursor = db.cursor()
t=['red', 'yellow']

for x in t:
    cursor.execute("select * from mytable where colours=%s", x)