如何在sqlite中使用%和like值?

圣地亚哥·萨斯特·古兹曼

我正在烧瓶中做一个路由,该路由基于url中的搜索参数将要过滤数据库,以返回所有相似的值,但是我收到以下错误:“%”附近:语法错误。有人可以帮忙吗?

@app.route('/courses/<search>', methods=['GET'])
    def searchg(search):
            con = sqlite3.connect('data.db')
            cur = con.cursor()
            courses = f'select id,name,description,tags,adminId,content,image from courses where name LIKE %{search}%'
            cur.execute(courses)
            allcourses=cur.fetchall()
            con.close()
            courseList = []
            for c in allcourses:
                formattedcourses = {"id":c[0],"name":c[1],"description":c[2],"tags":eval(c[3]),"adminId":c[4],"content":eval(c[5].replace("#",'"')),"image":c[6]}
                courseList.append(formattedcourses)
            return jsonify(courseList),200
专线小巴

您需要在字符串值两边加上单引号。使用参数更简单(更有效):

cur = con.cursor()
courses = f'select id,name,description,tags,adminId,content,image from courses where name LIKE ?'
cur.execute(courses, ('%' + search + '%',))
allcourses=cur.fetchall()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章