有没有办法在PostgreSQL中编写不区分大小写的查询,例如我希望以下3个查询返回相同的结果.
SELECT id FROM groups where name='administrator'
SELECT id FROM groups where name='ADMINISTRATOR'
SELECT id FROM groups where name='Administrator'
Run Code Online (Sandbox Code Playgroud) 如果我在字段上创建PostgreSQL唯一索引,默认情况下比较不区分大小写?
如果没有,是否可以要求PostgreSQL忽略字符串大小写?
我有一个字符串列表,我想用Django ORM进行不区分大小写的"in"查找.
我知道,我可以这样做:
name_list = ['Alpha', 'bEtA', 'omegA']
q_list = map(lambda n: Q(name__iexact=n), name_list)
q_list = reduce(lambda a, b: a | b, q_list)
MyModel.objects.filter(q_list)
Run Code Online (Sandbox Code Playgroud)
但也许有更简单的解决方案与更现代的Django ORM?
I have QueryDict with list 'value': ['1', '2', '3', '4', '5'] - number of elements is unknown. I need convert this list to filter model using OR condition:
Poll.objects.get(Q(value__icontains=option[0]) | Q(value__icontains=option[1]))
Run Code Online (Sandbox Code Playgroud)
In SQL:
AND (value LIKE '%1%' OR value LIKE '%2%')
Run Code Online (Sandbox Code Playgroud)
如何实现这个正确又简单的方法呢?