如何使用 MySQL SELECT WHERE IN (single tuple,) Python... 当 tuple length=1 时显示错误

How to use MySQL SELECT WHERE IN (single tuple,) Python... when tuple length=1 it shows an error

我有 2 个元组 a 和 b

print(a)
(1,2,3,4,5)

print(b)
(1,)

如您所见,第二个只有一个值...第一个我使用

query_a = 'SELECT something FROM mytable WHERE id IN {};'.format(a)

它完美运行。

如果我对 b 做同样的事情,那是行不通的。它显示:

Error: blah blah blah ..WHERE id IN (1,);': (1064, "You have an error in your SQL syntax...

我认为错误是因为元组逗号 -> (1,) 我该如何解决这个问题。我试过了

query_b = 'SELECT something FROM mytable WHERE id IN ();'.format(b)

但它也不起作用。我如何在一行中解决这个问题? 谢谢。

您可以执行一些简单的字符串操作来删除逗号。

'Tuple without comma: {}'.format(str(b)[:-2] + str(b)[-1])

无论元组长度如何,这都应该有效。

另请注意,{} 是 Python 中格式字符串语法的一部分。您无法将其替换为 () 以使其正常工作。

谢谢。有用。为了更清楚,答案是:

query_a = 'SELECT something FROM mytable WHERE id IN {};'.format(str(a)[:-2] + str(a)[-1])