MYSQL 使查询不区分大小写

标签 mysql django

我知道 mysql 查询是区分大小写的。但是在我的一个数据库中,它不区分大小写。以下两个查询都给出了相同的结果

从 auth_user 中选择用户名 where username='shivam'

从 auth_user 中选择用户名 where username='ShivaM'

我在我的 django 项目中使用了这个数据库,我通常使用 icontains 和 iexact 查找来进行不区分大小写的查询,但我无法找出上述行为的原因。

最佳答案

默认字符集和排序规则是 latin1 和 latin1_swedish_ci,因此默认情况下非二进制字符串比较不区分大小写。这意味着如果您使用 col_name LIKE 'a%' 进行搜索,您将获得所有以 A 或 a 开头的列值。

// this returns true
select 'A' like 'a'

// this returns false
select 'A' like binary 'a'


select * from user where email like binary 'a'

也许这个链接对你有用

https://dev.mysql.com/doc/refman/8.0/en/case-sensitivity.html

关于MYSQL 使查询不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316669/

相关文章:

sql - 如何计算呈现 Django 管理页面所需的 SQL 查询数?

php - 如何在 PHP 7 中启用 MySQLi 扩展?

mysql - 无法使用dataimporthandler将数据从mysql数据库导入/索引到solr

PHP 生成的图表。 CSS 错误。刻度错误。 SVG-多边形

MYSQL 查询带有可能未设置的变量

python - Django:覆盖保存方法以处理 unique=True IntegrityError

django - 更改 django 形式的日期时间输入格式

python - 在 Django 中将 Postgres 与 Oscar 同步时出现编程错误

django - 两个 Django 项目、一个 Postgresql 数据库和 Docker

c# - 反序列化 XML 的 SQL 查询