【发布时间】:2021-08-16 06:52:41
【问题描述】:
我在使用 django 的 MySQL db 后端时遇到了这个错误。
我正在尝试执行的查询(它与 MariaDB 连接器完美配合):
cursor.execute("SELECT a.*, COALESCE( NULLIF(a.aa_change_ref_gene, '.'), NULLIF(a.gene_detail_ref_gene,'.') ) AS variant, b.*, c.* FROM `db-dummy`.specimen_genome_data c JOIN `db-dummy`.genome_info a ON a.record_id = c.genome_id JOIN `db-dummy`.specimen_data b ON b.record_id = c.specimen_id WHERE a.gene_name LIKE concat(?, '%') ORDER BY a.gene_name LIMIT 30", (gene,))
我尝试过的:
基本上将'%' 替换为"%" 和'%%'
然后我收到"%" 案例的此错误:
异常类型:TypeError 异常值:
并非所有参数都在字符串格式化期间转换
'%%' 案例的此错误:
异常类型:ProgrammingError 异常值:
并非所有参数都在字节格式化期间转换 异常位置:/home/prime/.env/intervar/lib/python3.6/site-packages/MySQLdb/cursors.py 在执行中,第 203 行
【问题讨论】:
-
您是否更改了查询?第一个错误抱怨在查询中的第 350 个字符处有
',但提供的查询只有 343 个字符。 -
是的,出于安全原因,我更改了一些名称,但基本上是在抱怨
'%'部分。