gpt4 book ai didi

mysql - MYSQL 中的大小写敏感性和索引

转载 作者:行者123 更新时间:2023-11-29 05:45:59 25 4
gpt4 key购买 nike

我正在创建一个使用电子邮件地址作为唯一标识符的系统。有时我需要通过电子邮件地址查找用户。如果用户输入的电子邮件地址全部小写,但数据库将其存储为大小写混合,是全扫描,还是数据库仍使用索引?

这确实是个问题,因为我在将用户添加到系统时尝试验证电子邮件地址是否有效。

我在数据库后端使用 grails 和 MYSQL。我目前这样做是为了找到用户

def c = User.createCriteria()
def currentUser = c.get() { ilike('emailAddress',message.sender.address) }

我知道我可以在 UI 上强制大小写,但我也想在模型级别强制它

谢谢,很抱歉问了这么长的问题

最佳答案

MySQL 指定 collation对于每个字符列,可能区分大小写或不区分大小写。

索引是使用列上指定的任何排序规则构建的,因此:

  1. 更改您的表以在电子邮件列上指定不区分大小写的排序规则(例如 ascii-general-ci)。
  2. 重建索引。
  3. 享受吧。

请记住,针对电子邮件的所有查询现在将不区分大小写。

关于mysql - MYSQL 中的大小写敏感性和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1947386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com