SQL与from或statement之类的地方

时间:2012-06-08 14:13:22

标签: sql

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

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

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

1 个答案:

答案 0 :(得分: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 ");