我有一个选择查询来从mysql表中获取特定的列。这些特定的列必须来自两组的交集。
假设我有两套
A = {'age', 'description', 'name', 'payment_mode', 'id'}
# has all the column names of the table
和
B={'name', 'id', 'class'}
# input column names coming from a file (where values can be changed)
现在我要做
inter= A.intersection(B)
# would result in {'name', 'id'}
所以我希望选择查询为select {inter} from customers
。
如何编写动态查询以使列名称来自交集的结果?
答案 0 :(得分:0)
由于您已经在集合inter
中拥有所需的列,因此您所需要做的就是构造查询字符串。
在Python 3.6及更高版本中,您可以使用f-strings生成查询,如下所示:
query = f"select {', '.join(inter)} from customers"
或者,您可以执行以下常规连接:
query = 'select ' + ', '.join(inter) + ' from customers'
当query
为"select name, id from customers"
时,两种情况都将导致inter
为{'name', 'id'}