回答

收藏

sql查询中的python列表作为参数

技术问答 技术问答 121 人阅读 | 0 人回复 | 2023-09-13

我有一个python列表,说l
. J# J0 ~9 X$ E  g" E- |$ el = [1,5,8]
0 {# l1 F# P1 C' z我想编写一个sql查询来获取列表中所有元素的数据,例如
& d9 Y$ d. R5 M0 b4 j. q0 vselect name from students where id = |IN THE LIST l|1 J% g. ^9 s- y2 }
我该如何完成?4 z6 d2 O1 g% y  y* d5 v  y
                $ }7 M- V/ h3 X& _1 v
解决方案:) @3 S8 P3 K9 ~. q4 c( w( ~
                # b4 r- e4 ?4 r- X8 O* G, N
( H, f4 @4 O+ d7 {8 w* d9 \

& {* z& i7 _( Y4 J" v' w                到目前为止,答案一直是将这些值模板化为纯SQL字符串。这对于整数绝对没问题,但是如果我们想对字符串执行此操作,则会遇到转义问题。
, r$ i  ]* K; J' ]4 A5 k+ t. C这是一个使用参数化查询的变体,它对两个都适用:6 Z$ H% B1 h* ?  ?* M, [. X
placeholder= '?' # For SQLite. See DBAPI paramstyle.4 b! W. n1 A4 C  j: k
placeholders= ', '.join(placeholder for unused in l)" l# ^  N+ M! Y- c. S8 ?
query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders
7 p6 N' s) r8 K# Ycursor.execute(query, l)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则