有没有办法在Grails中执行不区分大小写的in
子句?
我有这个:
"in"("name", filters.tags)
我希望它忽略大小写。我想我可以做一个sqlRestriction并执行类似UPPER(name) in (commaSeparatedFilterTags)
的操作并获取过滤器标签列表并创建一个逗号分隔的列表,它们都是大写的,但是想知道是否有更简单/更好的方法?
答案 0 :(得分:4)
是的,你可以使用
def commaSeparatedFilterTags = "'name 1','NAME 2','namE 3',...,'name N'"
DomainClass.createCriteria().list{
sqlRestriction ("upper(name) in (${commaSeparatedFilterTags.toUpperCase()})")
}
或使用循环进入标准
def filterTags=["name 1","NAME 2","namE 3",...,"name N"]
DomainClass.createCriteria().list{
or{
filterTags.each{
eq("name",it,[ignoreCase: true])
}
}
}
我希望这会有所帮助