Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Dapatkan Hanya Alamat E-mel Unik daripada Pertanyaan SQL Berbilang Lajur?

Bagaimanakah Saya Boleh Dapatkan Hanya Alamat E-mel Unik daripada Pertanyaan SQL Berbilang Lajur?

Barbara Streisand
Lepaskan: 2024-12-28 11:37:20
asal
798 orang telah melayarinya

How Can I Retrieve Only Unique Email Addresses from a Multi-Column SQL Query?

CIRI untuk Lajur Tertentu

Memberi pertanyaan yang mendapatkan semula berbilang lajur, seperti ID, E-mel, ProductName dan ProductModel daripada Produk jadual, bagaimanakah ia boleh diubah suai untuk memaparkan nilai E-mel yang unik sahaja?

Untuk menangani perkara ini, SQL Pelayan 2005 dan versi yang lebih baru menawarkan penyelesaian:

SELECT *
FROM (
    SELECT  ID, 
            Email, 
            ProductName, 
            ProductModel,
            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
        FROM Products
) a
WHERE rn = 1
Salin selepas log masuk

Pertanyaan ini menggunakan fungsi ROW_NUMBER() untuk menetapkan nombor baris pada setiap baris dalam setiap partition E-mel, yang disusun mengikut tertib menurun ID. Lajur rn kemudiannya mengenal pasti baris mana yang harus disertakan dalam hasil akhir, kerana hanya baris dengan rn bersamaan dengan 1 akan dipilih.

Untuk memperhalusi pertanyaan lagi, klausa WHERE boleh ditambah untuk menapis baris berdasarkan pada kriteria tertentu. Contohnya, untuk memasukkan hanya baris dengan ProductModel tertentu dan ProductNamenya mengandungi subrentetan tertentu:

SELECT *
FROM (
    SELECT  ID, 
            Email, 
            ProductName, 
            ProductModel,
            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
        FROM Products
    WHERE ProductModel = 2
    AND ProductName LIKE 'CYBER%'
) a
WHERE rn = 1
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Hanya Alamat E-mel Unik daripada Pertanyaan SQL Berbilang Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan