如何使用 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])
我有 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])