17

谁能告诉我如何在不区分大小写的情况下从我的数据库中选择 DISTINCT?

我的查询是

SELECT DISTINCT email FROM `jm_order`

结果显示了表中的所有电子邮件,但重复了具有不同案例的电子邮件。这是意料之中的,因为值在大小写方面有所不同。例如

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

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

4

3 回答 3

22

尝试使用upper函数

SELECT DISTINCT UPPER(email) FROM `jm_order`

你也可以lower改用

SELECT DISTINCT LOWER(email) FROM `jm_order`

更多信息

于 2013-07-25T14:18:48.807 回答
8

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

select email
from jm_order
group by lower(email);
于 2013-07-25T14:22:50.770 回答
2

试试这个:

SELECT DISTINCT LOWER(email) AS email 
FROM `jm_order`
于 2013-07-25T14:20:48.997 回答