1、sqlite多表查询用模糊查询怎么写?
参考自:http://www.iteye.com/problems/85830
select a.name,a.age,b.name,b.sex from a a inner join b b on a.name=b.name where a.name like '%"+name+"%'
或者
"select a.name,a.age,b.name,b.sex from a a inner join b b on a.name=b.name where a.name like '%"+name+"%'"
2、主要是想在安卓手机上查询sqlite数据库,在python或qpython(在安卓手机上开发使用python版本,类似的有kivy,sl4a等)中使用sqlite3,如何使用like语句进行动态查询呢?
通过搜索网络/论坛/贴吧都没有找到好的解决方案,最后在上面的网站中找到只言片语,即刻就解决了。
部分代码参考自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html
#qpy:console
#qpy:2
import sqlite3
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
cx = sqlite3.connect("/storage/.../scripts/test.db") '此处需要自己改写相应的存储路径
cu = cx.cursor()
#cu.execute("create table cat(id integer primary key,pid integer,name varchar(10) UNIQUE,nickname text NULL)")
#for t in[(0,10,'abc','Yu'),(1,20,'ca','Xu')]:
# cx.execute("insert into cat values (?,?,?,?)", t)
#cx.commit()
d =raw_input("name:")
cu.execute("select * from cat where name like '%"+d+"%'")
print cu.fetchall()
execute方法是可以带参数查询的
参考自:http://tieba.baidu.com/p/3312638099
比如:
cu.execute("select * from table where name=%s"%uname)
应修改为如下形式:
cu.execute("select * from table where name=?", (uname, ))
这个(uname, )参数类型, 必须是元组!~
uname 字符串类型必须是unicode~
保险一点可以这样:
cu.execute("select * from table where name=?", (unicode(uname), ))
转载请注明出处!