1

名前でアプリケーションを検索する SQL ステートメントがあります。

def apps = Application.findAll("from Application as app where lower(app.name) like '%${params.query.toLowerCase()}%' ")

アプリケーション名だけでなく、タイプや言語などのさまざまなプロパティで検索できるようにしたいと考えています。またはステートメントを追加して、これを行うにはどうすればよいですか。ありがとう!

4

1 に答える 1

1

使用しているフレームワークや、データベースが使用している特定の RDBMS は (私には) 明確ではありませんが、SQL 条件の全体的な推力は通常非常に単純です。

ほとんどの他のコンピューター言語と同様に、and/or/not ステートメントを使用します。もちろん、SQL では、(通常は) 記号の代わりに単語を使用します。

  • ANDそれ以外の&&
  • ORそれ以外の||
  • NOTそれ以外の!

標準の比較演算子とともに:

  • <、、、、、、<=_ =_ <>_ >_>=

「等しい」は単一の=記号にすぎず、「等しくない」は通常反対側の山括弧であることに注意してください<>

したがって、現在のステートメントを考えると、ユーザーの言語でそれらのアプリケーションのみを取得し、「無効」になっているアプリを除外したい場合は、次のようにすることができます。

def apps = Application.findAll("from Application as app 
                                where lower(app.name) like '%${params.query.toLowerCase()}%' 
                                and app.language = userLanguageParameter
                                and app.status <> inactiveAppStatus ");
于 2012-06-08T16:12:48.660 に答える