Sql查询导致python崩溃

Sql查询导致python崩溃,python,sqlite,Python,Sqlite,以下查询导致python崩溃('python.exe遇到问题…' 进程终止,退出代码为-1073741819 查询是: create temp table if not exists MM_lookup2 as select lower(Album) || lower(SongTitle) as concat, ID from MM.songs where artist like '%;%' collate nocase 如果我从“喜欢”改为=它按预期运行,例如 creat

以下查询导致python崩溃('python.exe遇到问题…' 进程终止,退出代码为-1073741819

查询是:

create temp table if not exists MM_lookup2 as 
select lower(Album) || lower(SongTitle) as concat, ID    
from MM.songs    
where artist like '%;%' collate nocase 
如果我从“喜欢”改为=它按预期运行,例如

create temp table if not exists MM_lookup2 as 
select lower(Album) || lower(SongTitle) as concat, ID    
from MM.songs    
where artist = '%;%' collate nocase 
我运行的是PythonV2.7.2,其中包含任何版本的sqlite


问题查询在python之外运行时没有问题。

您没有编写您正在使用的数据库系统/驱动程序。我怀疑是您的SQL造成了问题。需要转义%字符。可能db驱动程序模块试图将%和%)解释为格式字符,而且它无法将不存在的参数值转换为数据库后端可接受的格式


你能给我们具体的Python代码吗?能否尝试运行相同的查询,但将“%”、%”的值放入参数中,并将其作为参数传递给光标?

UPDATE:我又看了一眼,看看这种情况是否“奇怪”。我唯一能想到的是数据库被编码为UTF-16le,并且被查询的数据库是一个附加的数据库,而不是第一次连接到的数据库。。。我更改了程序以删除第二个问题(即直接连接MM数据库)。。。这并没有纠正问题。更新2:问题似乎仅限于一个db,即MediaMonkey创建的db。他们已经实现了一个内部版本的“like”函数。。。“此特定于MM的LIKE实现自动使用@-符号作为转义字符,并且始终应用它。这意味着您需要修改SearchString以正确使用此函数。”。。。我不知道这是否是导致我的问题的原因,但我想这很可能。我找不到如何让@escape字符通过sqlite。。有什么想法吗?你能分享一下这个查询在哪里实现的python代码吗?