1

我有一条 SQL 语句来按名称搜索应用程序。

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

我不仅希望能够按应用程序名称进行搜索,还希望能够按类型和语言等不同属性进行搜索。我将如何添加或声明以允许我这样做。谢谢!

4

1 回答 1

1

目前尚不清楚(对我而言)您正在使用什么框架,或者您的数据库在什么特定的 RDBMS 上,但 SQL 条件的总体主旨通常非常简单。

几乎与大多数其他计算机语言一样,您使用和/或/非语句。当然,在 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 回答