gpt4 book ai didi

查询中的 Grails lower() 不起作用

转载 作者:行者123 更新时间:2023-12-02 06:34:35 24 4
gpt4 key购买 nike

假设我有这样的代码:

def c = Account.createCriteria()
def results = c {
between("balance", 500, 1000)
eq("branch", "London")
or {
like("holderFirstName", "Fred%")
like("holderFirstName", "Barney%")
}
maxResults(10)
order("holderLastName", "desc")
}

我想使用 lower() 函数将数据转换为小写

def c = Account.createCriteria()
def results = c {
between("balance", 500, 1000)
eq("branch", "London")
or {


like("lower(holderFirstName)", "Fred%")
like("lower(holderFirstName)", "Barney%")


}
maxResults(10)
order("holderLastName", "desc")
}

我的代码不起作用。正确的语法是什么?我对元音变音有疑问,所以我不想使用 ilike

最佳答案

不知道您想使用哪个 lower 函数,但我猜您想根据 holderFirstName 属性获取数据,忽略大小写。

在这里您可以使用ilike,这是一个不区分大小写的like:

def c = Account.createCriteria()
def results = c.list {
between("balance", 500, 1000)
eq("branch", "London")
or {
ilike("holderFirstName", "Fred%")
ilike("holderFirstName", "Barney%")
}
maxResults(10)
order("holderLastName", "desc")
}

顺便说一句 - 您错过了根据您的条件调用 list() ...

更新

您可以尝试向您的域类添加一个公式,如下所示:

static mapping = {
lowerFirstName formula: "lower(holder_first_name)"

}

并将条件中的属性更改为 lowerFirstName:

like("lowerFirstName", "fred%") // changed 'Fred%' to 'fred%' 

代码未经测试,但应该可以工作。

关于查询中的 Grails lower() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16543759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com