我试图从一个表中选择数据,并使用从第一个表返回的值对另一个表执行查询。

这两个表都区分大小写,并且类型为utf8-bin。

当我执行第一次选择时,我返回一个二进制值元组:

query = """SELECT id FROM table1"""
results = (b'1234', b'2345', b'3456')


然后,我想使用从table1返回的ID对table2执行查询:

query = """SELECT element FROM table2 WHERE id IN (%s) """ % results


这是正确的方法吗?

最佳答案

您需要创建查询,以便可以对其进行正确的参数化:

query = """SELECT element FROM table2 WHERE id IN (%s) """ % ",".join(['%s'] * len(results))


这会将查询转换为:

query = """SELECT element FROM table2 WHERE id IN (%s,%s,%s) """


然后,您可以将queryresults传递给execute()(或适当的)方法,以便正确设置results的参数。

关于python - 使用Python 3从Mysql检索和选择二进制值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24634528/

10-12 12:41
查看更多