MySQL不区分大小写的DISTINCT

Ray*_*vie 12 mysql sql database distinct case-insensitive

任何人都可以告诉我如何从我的数据库中选择DISTINCT而不区分大小写?

我的疑问是

SELECT DISTINCT email FROM `jm_order`
Run Code Online (Sandbox Code Playgroud)

结果显示表中的所有电子邮件,但重复具有不同情况的电子邮件.这是预期的,因为值的情况不同.例如

sam@gmail.com
josh@gmail.com
Sam@gmail.com
john@gmail.com
Run Code Online (Sandbox Code Playgroud)

但我想要的是相同的电子邮件,无论如何都要组合在一起.什么调整我可以让我的SQL从重复例如停止sam@gmail.comSam@gmail.com仅仅因为他们是不同的情况?

Rob*_*ert 17

尝试使用upper功能

SELECT DISTINCT UPPER(email) FROM `jm_order`
Run Code Online (Sandbox Code Playgroud)

你也可以使用lower替代

SELECT DISTINCT LOWER(email) FROM `jm_order`
Run Code Online (Sandbox Code Playgroud)

更多信息.


Gor*_*off 7

如果要保留电子邮件的大小写(因此它实际上与其中一行匹配),您可以执行以下操作:

select email
from jm_order
group by lower(email);
Run Code Online (Sandbox Code Playgroud)