【发布时间】:2014-12-25 13:07:48
【问题描述】:
我正在尝试使用 Grails Count By 返回数据库中的项目总数 我的查询是
def string = "'%"+params.query+"%'"
def sqlquery ="SELECT COUNT(Status) FROM Document WHERE status= '"+params.Status+"' And doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);
这应该返回我的总数,但它返回 0 而不是 724 我也尝试过类似
total = Document.countByStatusAndDocNameLike(params.docStatus,string);
但得到 0 而不是 724
这很奇怪,因为它返回正确的值
def sqlquery ="SELECT COUNT(Status) FROM Document WHERE doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);
【问题讨论】:
-
params.Status包含或可以包含什么?它可能会破坏您的 SQL(例如,如果它包含')。您需要转义传递给 SQL 查询的字符串或使用准备好的查询。 -
它可以包含 New、Reviewed、In-progress 字符串
-
您的数据库区分大小写还是不区分大小写?
-
def sqlquery ="SELECT COUNT(Status) FROM Document WHERE status = :stat AND doc_name LIKE "+string;总计 = Document.executeQuery(sqlquery,[stat:params.Status]);为我工作
标签: sql hibernate grails count hql