时间:2021-05-22
有的时候我们会去扫表,然后拿出扫的结果再到另一张表里去查信息。比如下面一段
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特殊字符的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言JSon数据中的String传递数据时,需要处理好特殊字符.本文主要给大家总结介绍了关于golang、rust、java和Python对特殊字符的json序
前言:Mybatis特殊字符处理,Mybatis中xml文件特殊字符的处理,这里提供了解决办法及实例,大家可以参考下:一、问题描述:查询时,需要获取时间区间内的
Python转义字符在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:Python字符串运算符下表实例变量a值为字符串"Hello",b
在Python普通字符串中在Python中,我们用'\'来转义某些普通字符,使其成为特殊字符,比如In[1]:print('abc\ndef')#'\n'具有换
最近用pymysql把一些质量不是很高的数据源导入mysql数据库的时候遇到一点问题,主要是遇到像\这样的具有特殊意义的字符时比较难处理。这里有一个解决方案基本