假设我有一个这样的mysql查询:
select log_name,timestamp,details from mylogs
where created_by>='2019-01-01 '
and user_id='%s' and details like '%\"ct_id\":\"%s\"%' ;
在python内部的for循环内执行。 for循环中提供了user_id和诸如占位符值之类的详细信息。
ct_id键的值,即%s是像0001512,000853等的字符串,我需要将其作为字符串,因为我想保留前导零。
我面临的问题是当我使用json.loads检索ct_id的值时,该值包含诸如'0001512'的单引号,所以在查询中它就像:
select log_name,timestamp,details from mylogs
where created_by>='2019-01-01 '
and user_id='%s44401' and details like '%\"ct_id\":\"'0001512'\"%' ;
我得到的语法错误为:
mysql.connector.errors.ProgrammingError:1064(42000):您有一个 您的SQL语法错误;检查与您的手册相对应的手册 MySQL服务器版本使用正确的语法,以在附近使用'%'0001512'%' 第1行
在将json值从字符串转换为int时消失,但不产生所需的输出。因此,我需要在查询中获取没有引号的值,而无需转换为int并保留前导零,该怎么办?