我有以下查询:
def currentUser = User.find('from User where enabled = (:a)
AND ( emailAddress = (:e) OR altEmailAddress like (:e) )',
[a: _enabled, e: _email.toLowerCase()])
我知道表中有应该返回的数据,它似乎没有返回任何结果。我做 Like 的方式有什么问题吗?
尝试在值之前和之后使用“%”。在你的情况下:
def currentUser = User.find('from User where enabled = (:a) AND ( emailAddress = (:e) OR altEmailAddress like (:e) )', [a: _enabled, e: '%' + _email.toLowerCase() + '%'])
对于您喜欢的部分,您想'%'
在电子邮件地址的某处添加一个(或类似的运算符),例如"foo%@bar.com"
。如果没有这些运算符之一,sql 将寻找精确匹配。