首页 > 解决方案 > 如何在 django2 中编写 raw like 查询?

问题描述

我正在尝试开发一个搜索应用程序,用户可以在其中搜索,并且为了我的系统要求,当我尝试编写以下原始查询时,我需要避免 ORM查询

q = request.POST.get('searchData')
    if q:
        titleInfo = Item.objects.raw("""select * from item where title like '%%s%'""", [q])

它给了我这个错误

ValueError at /test
unsupported format character ''' (0x27) at index 41

如果我删除报价

"""select * from item where title like %%s%"""

它给了我以下错误

ValueError at /test
incomplete format

我的查询在 MySQL 数据库中运行良好的地方

标签: mysqldjangopython-3.x

解决方案


我这样解决问题

q = request.POST.get('searchData')
    query = '%'+q+'%'
    if q:
        titleInfo = Item.objects.raw("select * from item where title like %s", [query])

推荐阅读