我编写了一个sqlite3查询来执行以下内容,
cur.execute("select * from table where column like '%s'"% (variable1))
使字符串与variable1完全匹配。 但我想要一个可以显示的sqlite3查询:
cur.execute("select * from table where column *contains* '%s'"% (variable1))
我应该写什么查询找到包含'variable1'的任何字符串。
任何帮助都会很明显。
答案 0 :(得分:0)
请参阅 LIKE 功能很简单。
如果您想搜索字符串,则必须将其放在单引号中:
搜索以s
开头的所有名称select name from names where name like 's%';
搜索以s
结尾的所有名称select name from names where name like '%s';
搜索包含s
的所有名称select name from names where name like '%s%';
但是,如果您已将字符串存储在变量 var
中你必须这样做:
select name from names where name like var;
答案 1 :(得分:0)
要忽略字符,您必须将百分号添加到LIKE模式中(并将它们加倍,以便%
运算符不会尝试替换它们):
cur.execute("select * from table where column like '%%%s%%'" % (variable1))
但是直接字符串插值会带来格式化问题以及可能的SQL注入。更好地使用参数:
cur.execute("select * from table where column like ?", ['%' + variable1 + '%'])
答案 2 :(得分:0)
尝试
cur.execute("""从表中选择*,其中列'%{}%'""" .format(变量))
请参阅此链接以获取sql