我有一本写着人名的通讯录。 我使用以下代码在“名称”列中执行搜索:
register = []
text = "{0}%" .format(self.lineEdit_6.text())
c.execute("select id, name from contacts where nome like '{0}'" .format(text))
for row in c:
register.append(row)
self.listWidget_4.addItem(str(row[1]))
self.listWidget_6.addItem(str(row[0]))
if register == []:
self.listWidget_4.addItem("No result")
name列有名字和姓氏(比如,John Smith) 当我不记得全名,只记得开头的字母时,上面的代码工作得很好。 但我希望结果显示所有匹配项,而不仅仅是名称的开头。 所以,如果我有3个名字(西蒙尼·威尔士,亚当·洛伊德,约翰·史密斯)和一个字母S,它必须给出西蒙尼·威尔士和约翰·史密斯名字的结果。 我该怎么做?在
这样做:
(在匹配字符串之前和之后包括通配符。在
另外,请考虑使用(注意:更正了此语法):
^{pr2}$或者
这将:
使代码免受SQL注入攻击。
正确处理
text
包含特殊字符的情况,如单引号(例如,O'Reilly
的名称)。相关问题 更多 >
编程相关推荐