我有一个SQL语句来按名称搜索应用程序。
def apps = Application.findAll("from Application as app where lower(app.name) like '%${params.query.toLowerCase()}%' ")
我希望不仅能够通过应用程序名称进行搜索,还能通过不同的属性(如类型和语言)进行搜索。我将如何添加或声明以允许我这样做。谢谢!
答案 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 ");