Python处理mysql特殊字符的问题


Posted in Python onMarch 02, 2020

有的时候我们会去扫表,然后拿出扫的结果再到另一张表里去查信息。比如下面一段

index_sql_str = "select %s from user where %s = %d" % ("social_id", "user_id", u_id)
  db_cursor.execute(index_sql_str)
  rows = ['"' + row[0] + '"' for row in db_cursor.fetchall()]
  if len(rows) == 0:
    return None
  result = []
  sql_str = "select %s user_detail where %s in (%s)" % (",".join(user_third_column_name), "social_id", ",".join(rows))
  db_cursor.execute(sql_str)

常会有用%s或者+拼接query string的情况,这时候如果拿出来的键值带有'或''就会导致拼接出现问题。

可以考虑用format,即

>>> a = 'test"test'
>>> "insert into user {0}".format(a)
'insert into user test"test'
>>> b = "test'test"
>>> "insert into user {0} where {1} = x".format(a,b)
'insert into user test"test where test\'test = x'

如果大小写都包含会自己增加转义字符

补充拓展:基于python中写mysql关于like % 的问题

#@ 1 - 正常执行的mysql 语句为:
 select * from RESIDENTIAL_AREA where RA_ID like 'HF-%' 
 
#@ 2 - 在python 代码中为: 最后面的那个 % 需要4个% 去代替(raid = HF-)
select_sql = ''' select * from RESIDENTIAL_AREA where RA_ID 
  like '%s%%%%' ''' % (raid)
 
 
 
#@ 3 - python 代码中 输出结果为:print(select_sql)
 select * from RESIDENTIAL_AREA where RA_ID like 'HF-%%'

以上这篇Python处理mysql特殊字符的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
Python多进程同步Lock、Semaphore、Event实例
Nov 21 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
Python AES加密实例解析
Jan 18 Python
在python中实现对list求和及求积
Nov 14 Python
python中类的属性和方法介绍
Nov 27 Python
python实现kmp算法的实例代码
Apr 03 Python
Python自动抢红包教程详解
Jun 11 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
python实现高斯投影正反算方式
Jan 17 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
python 网络编程要点总结
Jun 18 Python
新手入门学习python Numpy基础操作
Mar 02 #Python
python中数据库like模糊查询方式
Mar 02 #Python
python读取文件指定行内容实例讲解
Mar 02 #Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 #Python
python判断两个序列的成员是否一样的实例代码
Mar 01 #Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
Mar 01 #Python
Python猜数字算法题详解
Mar 01 #Python
You might like
日本十大惊悚动漫
2020/03/04 日漫
php防注
2007/01/15 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
Django实现发送邮件功能
2019/07/18 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
英国女士家居服网站:hush
2017/08/09 全球购物
成龙洗发水广告词
2014/03/14 职场文书
毕业设计说明书
2014/05/07 职场文书
校园广播稿精选
2014/10/01 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
创卫工作总结2015
2015/04/22 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫