MySQL不区分大小写的DISTINCT

时间:2013-07-25 14:17:44

标签: mysql sql database distinct case-insensitive

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

我的查询是

SELECT DISTINCT email FROM `jm_order`

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

sam@gmail.com
josh@gmail.com
Sam@gmail.com
john@gmail.com

但我想要的是相同的电子邮件,无论如何都要组合在一起。我可以对我的SQL进行哪些调整以阻止它重复例如sam@gmail.comSam@gmail.com,因为它们是不同的情况?

3 个答案:

答案 0 :(得分:17)

尝试使用upper功能

SELECT DISTINCT UPPER(email) FROM `jm_order`

您也可以使用lower代替

SELECT DISTINCT LOWER(email) FROM `jm_order`

More information

答案 1 :(得分:7)

如果您想保留电子邮件的大小写(因此它实际上与其中一行匹配),您可以这样做:

select email
from jm_order
group by lower(email);

答案 2 :(得分:2)

试试这个:

SELECT DISTINCT LOWER(email) AS email 
FROM `jm_order`