如何在mysql中使用in运算符传递变量?
在sql commed中,我在运算符中使用条件和变量,现在我必须在这个变量中传递值,对于这个变量,正确的语法是什么:如何在mysql中使用in运算符传递变量?,mysql,Mysql,在sql commed中,我在运算符中使用条件和变量,现在我必须在这个变量中传递值,对于这个变量,正确的语法是什么: select col1 from testtable where col2 in :testval mysql 5.1版您不能。参数化SQL仅适用于单个值。使用以下命令: values = ["foo", "bar", "baz"] variables = { "var%d" % i: value for i, value in enumerate(values) } pla
select col1 from testtable where col2 in :testval
mysql 5.1版您不能。参数化SQL仅适用于单个值。使用以下命令:
values = ["foo", "bar", "baz"]
variables = { "var%d" % i: value for i, value in enumerate(values) }
placeholders = ", ".join(":%s" % var for var in variables.keys())
sql = "select col1 from testtable where col2 in (" + placeholders + ")"
然后可以将
sql
与变量绑定一起使用。应该是这样的:从col2所在的testtable中选择col1(var1,var2,…)
样品
表名:测试
IdNameRoll\u编号
1R。Nikhil34
2Ashish Rao25
3约瑟夫45
4穆罕默德35
5贾丁·古普塔39
Mysql查询:从Roll_No所在的测试中选择名称(25、35、45)
结果将是:
阿什·饶
约瑟夫
Mohammed
您可以使用ORM库进行更高级别的访问,而不是普通的SQL
例如(摘自):
什么编程语言/环境?蟒蛇?
session.query(MyUserClass).filter(MyUserClass.id.in_((123,456))).all()
# alternative - without the ORM part, just query builder:
session.execute(
select(
[MyUserTable.c.id, MyUserTable.c.name],
MyUserTable.c.id.in_((123, 456))
)
).fetchall()