次のクエリがあります。
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 は完全一致を探します。