【发布时间】:2021-05-13 09:42:20
【问题描述】:
这似乎是非常明显的用例,我很惊讶我找不到任何可行的解决方案。
我有一个方法可以返回类似这样的用户名列表:
username = ["Tom", "Bob", "Charley"]
现在我想用这个变量为 IN 运算符构建一个 sql,类似于:
sql = "Select * from users Where username IN %s" % username;
由于语法错误,上面一行显然失败了。
然后我发现,我可以把它改成元组:
username_tuple = tuple(username)
sql = "Select * from users Where username IN {}".format(username_tuple)
上面的行运行良好,但如果列表中只有一个字符串 (username = ["tom"]),那么它会因语法错误而失败,因为 username_tuple 的计算结果为 ("tom",)(请注意用户名后面的逗号.)
【问题讨论】:
标签: python mysql postgresql