Grails SQL匹配条件

时间:2014-05-08 19:26:20

标签: sql grails

我的案例是搜索人们的兴趣类型,年龄,活动等。并且至少有一个信息必须匹配并显示结果。 例如:它必须是25-31岁范围内的女性和(可选)我想要认识的人:英语,德语和意大利语,我的兴趣是:参加派对,说我的语言的人,做外面的活动。另一个配置文件创建几乎相同,一些信息是等于。

年龄和性别是匹配标准的主要障碍。其他人是可选的,例如上面的例子,如果一个人说日语和意大利语,并且必须是25-31岁的女性,请在结果中显示。

但我已经陷入了我想要找到能说3种语言或兴趣的人的地方,我怎么能循环使用它(我有一个数组)?我应该得到所有结果然后比较一个方法吗?或者我应该使用createCriteria() 我的代码是静态的:

def e = User.executeQuery("from User as u where (u.profile.sexType = 2 and u.profile.ageRangeType = 2) > (select Profile as p where ")

我的英语不是最好的。

1 个答案:

答案 0 :(得分:0)

尝试按其他条件进行分组并对语言列进行计数。然后使用HAVING子句查找那些知道3种以上语言的人。

SELECT User, COUNT (Languages) 
FROM Profile 
WHERE (Other user criteria)
GROUP BY User
HAVING COUNT (Languages) > 2