我试图从一个表中选择数据,并使用从第一个表返回的值对另一个表执行查询。
这两个表都区分大小写,并且类型为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) """
然后,您可以将
query
和results
传递给execute()
(或适当的)方法,以便正确设置results
的参数。关于python - 使用Python 3从Mysql检索和选择二进制值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24634528/