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 に答える