在python

时间:2019-05-15 08:43:27

标签: python-3.x

我有一个选择查询来从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

如何编写动态查询以使列名称来自交集的结果?

1 个答案:

答案 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'}