Grails createCriteria mysql IF语句
我是Grails的新手,我有个大问题。 我有这个域名:Grails createCriteria mysql IF语句,mysql,grails,if-statement,case,Mysql,Grails,If Statement,Case,我是Grails的新手,我有个大问题。 我有这个域名: class Product{ String name Integer priority Double quantity } 我想按优先级(即为0或1)-desc对产品进行排序,然后按数量进行排序。在mysql中,我是这样做的: select name, IF(quantity>=1,1,0) as q from product where ... order by priority desc, q desc, id d
class Product{
String name
Integer priority
Double quantity
}
我想按优先级(即为0或1)-desc对产品进行排序,然后按数量进行排序。在mysql中,我是这样做的:
select name, IF(quantity>=1,1,0) as q from product
where ...
order by priority desc, q desc, id desc
mysql中有alse CASE语句,但在Grails中,我不知道如何为此创建标准
提前谢谢 试着在下面做点什么:
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=低
请做必要的更改
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" )
};
ge("balance", 1000)
嗨,蒂兹。谢谢你的快速回复,但我显然没有解释我需要什么。我想要一个Grails标准,它将执行与上面的mysql语句相同的操作。对不起,我的英语不好。嗨,splix。Tnx编辑我的文章。我很匆忙。。。很抱歉按任意表达式排序,或直接使用SQL。看起来连HQL都做不到:
Product.executeQuery('from Product p order by(id>100)')
对我来说失败,出现HQL语法错误。已添加。谢谢:)
ge("balance", 1000)