我使用以下代码过滤来自django数据库(mysql)的结果:
queryset = MyModel.objects.filter(value_name__icontains=search).order_by("pk")
class MyModel(models.Model):
...
value_name = models.CharField(unique=True, max_length=255)
...
class Meta:
managed = False
db_table = "my_table"
字符串
字段value_name=utf8mb4_0900_bin
的排序规则值
当search = "bin"
的值得到一组结果时,结果中有子字符串“bin”。
当search="Bin"
的值时,我得到另一组结果。结果中有子字符串“Bin”。
这两者的结果没有任何交集。
这看起来像是一个排序规则问题,如何解决这个问题?我不能更改数据库上的任何内容,因为我只有读取权限。
我的Django版本是3.2。
我试过这个,但它不起作用。value_name = models.CharField(unique=True, max_length=255, db_collation='utf8_general_ci')
个
1条答案
按热度按时间vlju58qv1#
我怀疑这是整理。
您的表有
managed=False
,因此更改模型上的字段定义来设置排序规则对您没有帮助。您需要检查实际数据库中的表定义-如果没有定义排序规则,它将无法工作。