python一行sql太长折成多行并且有多个参数的方法

sql语句

有一个非常长的sql,用编辑器打开编写的时候太长了导致编写非常吃力,而且容易错乱,我想做的是把A,B,C三个变量赋值到sql中的字段中去

A=1
B=2
C=3

sql = "update student t set t.name = '',t.sex = '',t.age = '',t.height = '',t.weight = '',t.class = '',t.stuid = '',t.xxx = '' where t.stuid= '' and t.xxx = '';"

折叠多行后写法

解决方案如下:

可以通过()小括号将每一行的字符串整齐拼接,回车以后会自动将每行的字符串进行拼接,并且将每个需要传参的字段加上 %s,在括号结束之前在用%(变量名字,变量名字,变量名字)依次进行赋值。最终完美解决。

A=1
B=2
C=3
sql = ("update student t set t.name = '%s',"
     "t.sex = '%s',"
     "t.age = '%s',"
     "t.height = '%s',"
     "t.weight = '%s',"
     "t.class = '%s',"
     "t.stuid = '%s',"
     "t.xxx = '%s'"
     " where t.stuid= '%s'"
     " and t.xxx = 'P';" %(A,B,A,B,B,A,A,B,C)
  )

以上这篇python一行sql太长折成多行并且有多个参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现接受任意个数参数的函数方法

    这个功能倒也不是我多么急需的功能,只是恰好看到了,觉得或许以后会用的到.功能就是实现函数能够接受不同数目的参数. 其实,在C语言中这个功能是熟悉的,虽说实现的形式不太一样.C语言中的main函数是可以实现类似的功能的,可以通过这种方式实现一个支持命令行参数的程序. 先写一段python实现相应功能的示范代码: defFuncDemo(*par): print("number of pars: %d" %len(par)) print("type of par: %s"

  • python实现读取命令行参数的方法

    本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名:    sys.argv[0] 参数1:     sys.argv[1] 参数2:     sys.argv[2] test.py: import sys print "脚本名:", sys.argv[0] for i in rang

  • Python中函数的参数传递与可变长参数介绍

    1.Python中也有像C++一样的默认缺省函数 复制代码 代码如下: def foo(text,num=0):     print text,num foo("asd")  #asd 0 foo("def",100)  #def 100 定义有默认参数的函数时,这些默认值参数 位置必须都在非默认值参数后面. 调用时提供默认值参数值时,使用提供的值,否则使用默认值. 2.Python可以根据参数名传参数 复制代码 代码如下: def foo(ip,port):   

  • Python中防止sql注入的方法详解

    前言 大家应该都知道现在web漏洞之首莫过于sql了,不管使用哪种语言进行web后端开发,只要使用了关系型数据库,可能都会遇到sql注入攻击问题.那么在Python web开发的过程中sql注入是怎么出现的呢,又是怎么去解决这个问题的? 当然,我这里并不想讨论其他语言是如何避免sql注入的,网上关于PHP(博主注:据说是世界上最屌的语言)防注入的各种方法都有,Python的方法其实类似,这里我就举例来说说. 起因 漏洞产生的原因最常见的就是字符串拼接了,当然,sql注入并不只是拼接一种情况,还有

  • python进阶教程之函数参数的多种传递方法

    我们已经接触过函数(function)的参数(arguments)传递.当时我们根据位置,传递对应的参数.我们将接触更多的参数传递方式. 回忆一下位置传递: 复制代码 代码如下: def f(a,b,c):     return a+b+c print(f(1,2,3)) 在调用f时,1,2,3根据位置分别传递给了a,b,c. 关键字传递 有些情况下,用位置传递会感觉比较死板.关键字(keyword)传递是根据每个参数的名字传递参数.关键字并不用遵守位置的对应关系.依然沿用上面f的定义,更改调用

  • Python 获得命令行参数的方法(推荐)

    本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名:    sys.argv[0] 参数1:     sys.argv[1] 参数2:     sys.argv[2] test.py import sys print "脚本名:", sys.argv[0] for i in range(1, len(sy

  • python一行sql太长折成多行并且有多个参数的方法

    sql语句 有一个非常长的sql,用编辑器打开编写的时候太长了导致编写非常吃力,而且容易错乱,我想做的是把A,B,C三个变量赋值到sql中的字段中去 A=1 B=2 C=3 sql = "update student t set t.name = '',t.sex = '',t.age = '',t.height = '',t.weight = '',t.class = '',t.stuid = '',t.xxx = '' where t.stuid= '' and t.xxx = '';&qu

  • 解决Python保存文件名太长OSError: [Errno 36] File name too lon

    目录 保存文件名太长OSError: [Errno 36] File name too lon 问题描述 解决方案 Python超长文件名解决 保存文件名太长OSError: [Errno 36] File name too lon 问题描述 安装 pip install python-docx 代码 from docx import Document Document().save('{}.docx'.format('1' * 256)) 报错 OSError: [Errno 36] File

  • 基于Python的SQL Server数据库实现对象同步轻量级

    缘由 日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器. 类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话,就会会存在相当一部分反复的手工操作. 建源的数据库信息,目标的数据库信息,如果是多个表,需要一个一个地拉source和target,然后一个一个地mapping,然后运行实现数据同步. 然后很可能,这个workflow使用也就这么一次,就寿终正寝了,却一样要浪费时间去做这个ETL. 快速数据同步实现 于是在想,可不可能快速实现类似需求,尽最大

  • Python一行代码识别增值税发票实现示例

    目录 识别发票 注意事项 识别发票 录入发票是一件繁琐的工作,如果可以自动识别并且录入系统,那可真是太好了. 今天我们就来学习一下,如何自动识别增值税发票并且录入系统~ 识别发票的代码最简单,只需要1行代码,如下所示. # 导入potencent这个库,下载命令:pip install potencent import potencent # 调用增值税识别的功能 potencent.ocr.VatInvoiceOCR(img_path=r'C:\vx_CoderWanFeng\your_img

  • Laravel 5.4因特殊字段太长导致migrations报错的解决

    前言 本文主要介绍了关于Laravel 5.4因特殊字段太长导致migrations报错的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持.MySQL 需要v5.7.7或者更高版本,当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你会碰到下面这个错误: [Illuminate\Database\QueryException] SQLS

  • Python实现二维数组按照某行或列排序的方法【numpy lexsort】

    本文实例讲述了Python实现二维数组按照某行或列排序的方法.分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. (对应lexsort 一维数组的是argsort a.argsort()这么使用就可以:argsort也不修改原数组, 返回索引) 默认按最后一行元素有小到大排序, 返回最后一行元素排序后索引所在位置. 设数组a, 返回的索引ind,ind返回的是一维数组 对于一维数组, a[ind]就是排序后的数组.

  • insert语句太长用StringBuilder优化一下

    private void btnSave_Click(object sender, RoutedEventArgs e) { if (IsInsert) { //如果日历控件没有选日期,那帮它赋一个当前日期.下面有三个日历控件中,我只为其中一个日历控件做了赋值. DateTime time1 = dpEditTime.SelectedDate == null ? DateTime.Now : dpEditTime.SelectedDate.Value; DataUpdate updata = n

  • Python编程把二叉树打印成多行代码

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. 思路: 1.把每层节点的val值用list存好 2.把每层节点存好: ①计算当层节点的个数,这样就保证下一步每层的结点都被pop光 ②然后依次弹出从左到右的每个节点,然后在list中加入该节点对应的左结点.右节点(如果存在的话) 代码如下: class TreeNode(): def __init__(self,x): self.val = x self.left = None self.right = None def

  • ubuntu中终端命令提示符太长的修改方法汇总

    ubuntu的终端命令提示符太长,主要原因: 1:计算机名太长: 2:多层直接显示出来: 针对计算机名太长的处理: 如:下面的计算机名提示太长了: ningcaichen-virtual-machine是计算机名: ningcaichen@ningcaichen-virtual-machine:/mytmp$ sudo vim /etc/hostname 修改为: ningcaichen@ningcaichen-virtual-machine:/mytmp$ sudo vim /etc/host

随机推荐