2013-07-25 170 views
9

Bất cứ ai có thể cho tôi biết làm thế nào tôi có thể CHỌN DISTINCT khỏi cơ sở dữ liệu của tôi mà không bị phân biệt chữ hoa chữ thường?DISTINCT MySQL phân biệt chữ hoa chữ thường

truy vấn của tôi là

SELECT DISTINCT email FROM `jm_order` 

Kết quả sẽ đưa ra tất cả các email trong bảng nhưng lặp đi lặp lại là những người có trường hợp khác nhau. Điều này được mong đợi bởi vì các giá trị là trường hợp khác nhau khôn ngoan. ví dụ:

[email protected] 
[email protected] 
[email protected] 
[email protected] 

Nhưng điều tôi muốn là cho cùng một email, được nhóm lại với nhau bất kể trường hợp nào. Tôi có thể điều chỉnh điều gì cho SQL của mình để ngăn nó lặp lại ví dụ [email protected][email protected] chỉ vì chúng là các trường hợp khác nhau?

+0

có thể trùng lặp của [" CHỌN DISTINCT "bỏ qua các trường hợp khác nhau] (https://stackoverflow.com/questions/2644851/select-distinct-ignores-different-cases) –

Trả lời

15

Cố gắng sử dụng chức năng upper

SELECT DISTINCT UPPER(email) FROM `jm_order` 

bạn cũng có thể sử dụng thay vì lower

SELECT DISTINCT LOWER(email) FROM `jm_order` 

More information.

+0

Cảm ơn ... –

2

Hãy thử điều này:

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

Nếu bạn muốn giữ các trường hợp của email (để nó thực sự phù hợp với một trong những hàng), bạn có thể làm:

select email 
from jm_order 
group by lower(email);