首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails createCriteria mysql IF语句

Grails createCriteria mysql IF语句
EN

Stack Overflow用户
提问于 2012-02-17 08:51:26
回答 2查看 510关注 0票数 0

我是Grails的新手,我有个大问题。我有一个域名:

代码语言:javascript
复制
class Product{

  String name
  Integer priority
  Double quantity
}

我想按优先级(0或1) - desc对产品进行排序,然后按数量排序。在mysql中,我这样做:

代码语言:javascript
复制
select name, IF(quantity>=1,1,0) as q from product
where ...
order by priority desc, q desc, id desc

mysql中有alse CASE语句,但在Grails中,我不知道如何为此创建条件。

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2020-01-22 04:14:16

代码语言:javascript
复制
Product.createCriteria().list(){
    projection{   // 1. because you only want to getname list.
       property("name")
    }
    ge("quantity", 1) // 2. greater than or equal 1

   order("priority", "desc" ) // by default "asc"
   order("quantity", "desc" )
   order("id", "desc" )
};
  1. 只有在按“投影”包装时,才返回返回结果中的给定属性。 投影{属性(“firstName”)}
  2. 如果某一财产大于或等于某一特定财产。 ge(“余额”,1000)
  3. "desc“或"asc”分别用于下行和上升。默认情况下,结果按升序排序。

Grails官方文件v4.0.0

票数 3
EN

Stack Overflow用户

发布于 2012-02-17 09:09:43

试着在下面做些事情:

代码语言:javascript
复制
  select name,IF(quantity>=1,1,0) as q
  from product 
  where ... 
  order by IF(priority=1,0,1), q desc, id desc

考虑优先级1=高0=low

请做必要的更改

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9325301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档