关于sql语句和python拼接问题

关于sql语句和python拼接问题

sql = 'INSERT INTO t_emp_new(SELECT * FROM t_emp WHERE deptno IN ('
for index in range(len(temp)):
one = temp[index][0]
if index < len(temp)-1:
sql += str(one)+','
   else:
sql += str(one)
sql += ')'

这段代码的逻辑能明白,但是这种拼接方式看不懂,之前的课程好像没讲过拼接方式吧?能详细说一下吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2021-07-13 13:52:31

同学,你好!代码中的拼接方式的本质其实就是使用+=进行字符串拼接。

例:

sql += str(one) + ","其实就是sql = sql + str(one) + ","

sql、str(one)、','都是字符串,使用+将多个字符串拼接成一个字符串后重新赋值给sql变量

http://img1.sycdn.imooc.com//climg/60ed293209106cbd10280285.jpg

祝学习愉快!

  • 提问者 嚯嚯嚯霍哼 #1

    sql += str(one)能理解

    不能理解的地方在于下图红色框的地方,为什么sql+=要写在最后而且后于前面的逻辑语句?这是规定的语法吗?

    http://img1.sycdn.imooc.com//climg/60ed2ed809934f8a00000000.jpg

    2021-07-13 14:14:20
  • 好帮手慕美 回复 提问者 嚯嚯嚯霍哼 #2

    同学,你好!sql += ")"可以理解为sql = sql + ")",是为sql语句加上右括号。

    例:one值为20,10,执行完for循环后sql语句为

    "INSERT INTO t_emp_new SELECT * FROM t_emp WHERE deptno IN (20,10",还缺少右侧的括号,因此在最后使用+=的形式拼接上右侧括号

    ​​祝学习愉快!

    2021-07-13 14:33:51
  • 提问者 嚯嚯嚯霍哼 回复 好帮手慕美 #3

    http://img1.sycdn.imooc.com//climg/60ed3e2509846be307300120.jpg

    那for循环后的语句又是怎样拼接到IN上的呢?

    2021-07-13 15:18:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师