在原始查询集中,使用 ILIKE 不区分大小写来检查其中一个字段是否以预定义的字母开头



我正在使用原始查询集,除了其他事情之外,我还检查名称是否以特定字符开头。

我使用ILIKE,以保持大小写:

qs = self.raw(
     f'''SELECT t.id, t.name, 
     ................
     WHERE t.is_active = true AND t.name ILIKE '%s%' ORDER BY name ASC''',
                params=[char])

我收到以下错误:

tuple Index out of range

我认为这是因为这个原因而发生的:ILIKE '%s%',逃跑是错误的

最简单的

解决方案是在char末尾添加%

qs = self.raw(
     '''SELECT t.id, t.name
     WHERE t.is_active = true AND t.name ILIKE %s ORDER BY name ASC''',
                params=[char + '%'])

最新更新