在django raw sql中使用like语句时出错

时间:2011-06-16 03:15:27

标签: sql django sql-like

我有一个原始的SQL查询,它总是在执行时给出错误。这是我的查询

Users.objects.raw('select target, username from users where location like \'%s%%\' and date(modified) = \'2011-06-14\'',[location])

我正在接受location = 'BUILD'

位置值为'BUILD_A','BUILD_B','BUILD_C'。

当我执行原始sql时,下面是我得到的错误。

  

DatabaseError:(1064,“您的SQL语法有错误;请查看手册       对应于您的MySQL服务器版本,以便在附近使用正确的语法       'BUILD'%'和date(modified)='2011-06-14''在第1行“)

在MySQL术语中,我需要执行以下查询:

Select target, username from users where location like 'BUILD%' and target = '2011-06-14'

我用谷歌搜索但无法得到它。请有人帮助我

2 个答案:

答案 0 :(得分:5)

我已经用这种方式解决了我的问题。

location = location + '%'

users_list = Users.objects.raw('select target, username from users where location like %s and date(modified) = %s',tuple([location,date]))

上述语句执行完美,没有任何错误,我也可以在模板中呈现结果。

答案 1 :(得分:0)

下面的查询对我有用,

query =“从“ BUILD%”这样的位置中选择目标用户名和用户名”
结果= Users.objects.raw(query)