我正在尝试使用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);
答案 0 :(得分:0)
所以,如果这两个:
def sqlquery ="SELECT COUNT(Status) FROM Document WHERE status= '"+params.Status+"' And doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);
和
total = Document.countByStatusAndDocNameLike(params.docStatus,string);
返回相同的东西(他们应该),但他们返回的计数是0,但是这个:
def sqlquery ="SELECT COUNT(Status) FROM Document WHERE doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);
返回您期望的所有文档,然后我必须建议您期望的文档不具有params.Status中的状态。我建议打印出params.Status的值,并查看它是否匹配...确切地说......你预期的724文档中的值。请注意,最后一个查询中的COUNT(状态)不计算其中包含params.Status的那个(在查询中没有提到params.Status)......也可能是COUNT( *)。