0

我有以下查询:

def currentUser = User.find('from User where enabled = (:a) 
AND ( emailAddress = (:e) OR altEmailAddress like (:e) )', 
[a: _enabled, e: _email.toLowerCase()])

我知道表中有应该返回的数据,它似乎没有返回任何结果。我做 Like 的方式有什么问题吗?

4

2 回答 2

1

尝试在值之前和之后使用“%”。在你的情况下:

def currentUser = User.find('from User where enabled = (:a) AND ( emailAddress = (:e) OR        altEmailAddress like (:e) )', [a: _enabled, e: '%' + _email.toLowerCase() + '%'])
于 2012-06-11T22:08:26.183 回答
0

对于您喜欢的部分,您想'%'在电子邮件地址的某处添加一个(或类似的运算符),例如"foo%@bar.com"。如果没有这些运算符之一,sql 将寻找精确匹配。

于 2012-06-11T21:35:15.823 回答