【问题标题】:How to use the % and like values in sqlite?如何在 sqlite 中使用 % 和 like 值?
【发布时间】:2020-08-27 21:48:50
【问题描述】:

我在烧瓶中做一个基于 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

【问题讨论】:

    标签: python sql sqlite where-clause sql-like


    【解决方案1】:

    您需要在字符串值周围加上单引号。使用参数更简单(也更高效):

    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()
    

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 1970-01-01
      • 2020-03-15
      • 2017-06-06
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多