如何模式匹配“LIKE”并使用下面的Python代码转义特殊字符?我收到了特殊字符的错误。
“参数”值为“1.1”,“1.2”,“1.3”
cr.execute("select sequence from account_stock_info "
"where sequence like '%s.%' "
"order by sequence ",
(tuple(parameter)))
关于PGADMIN的原始查询是:
select sequence from account_stock_info
where sequence like '1.1.%'
order by sequence
答案:“1.1.1”,“1.1.1.03”,“1.1.2”,“1.1.2.04”,“1.1.3”
请帮助Python模式匹配。
答案 0 :(得分:1)
第一个错误是使用tuple
函数和字符串参数:
>>> tuple('1.1')
('1', '.', '1')
你可以明确地传递元组:(parameter,)
或使用dict传递参数。
要将百分号转到LIKE
语句,您可以在查询中添加额外的百分号:
parameter = "1.1"
cr.execute("select sequence from account_stock_info "
"where sequence like '%s.%%' "
"order by sequence ",
(parameter,))
或在参数中传递(引用可以在这里删除):
parameter = "1.1.%"
# ...
"where sequence like %s "