mysql - 如何强制 Django 进行区分大小写的比较?

标签 mysql django

由于我们的数据库整理方式,它们会忽略用户名和密码的大小写,目前我们无法在数据库级别修复此问题。它出现于this thread WHERE BINARY 'something' = 'Something' 应该可以解决问题,但我无法弄清楚如何让 Django 插入 BINARY。有什么建议吗?

最佳答案

我认为没有一种简单的方法可以强制 Django 在查询内容中添加某些内容。

您可能只想简单地写一个 raw SQL query在 Django 中通过区分大小写的比较来过滤对象,然后在正常查询中使用它们。

另一种方法是使用 Django 区分大小写的过滤器以获得相同的结果。例如。 contains/startswith 都使用 BINARY LIKE 并且可以在比较两个具有相同长度的字符串(如密码哈希)时使用。最后,您可以使用regexp进行区分大小写的比较。但在这种情况下,这些都是相当丑陋的方法。它们会产生不必要的开销,您应该尽可能避免它们。

关于mysql - 如何强制 Django 进行区分大小写的比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10801180/

相关文章:

MySQL优化: Multiple Modes (Most Common Value) in a Single Query

android - 创建一个可以与 Web/iOS/Android 一起工作的数据库

mysql - 我应该对许多分类行使用单个表吗?

mysql - SQL结果的顺序不同

mysql - 尝试操作存储过程中的数据时显示空值

node.js - Django channel 与 Node socket.io

javascript - 从我的网站播放声音的最佳方式是什么?

python - 用于查找有效 sphinx 字段的正则表达式

python - 为什么 django 的 model.save() 不调用 full_clean()?

django - 使用现有数据将数据导入 Django 模型?