Numaralandırma Yap - MySQL


MySQL ile sorgu kullanarak tablolarınıza sıra numarası verme işlemi yapan alternatif bir sorgu örneğine göz atalım.

Bilgi

Bazen sorgulama işlerimizi kolaylaştırmak için sorgu kullanarak 1’den başlayıp sorgu sayımıza kadar artan bir sütunu ekleyebiliriz. SQL Server’da DENSE_RANK fonksiyonu kullanarak bu işlemi kolayca yapabiliyoruz ama MySQL için çok az daha zahmetli oluyor.

Sorgu

Aşağıdaki MySQL komutları tablodaki sütunların en soluna bir sütun ekler ve 1’den başlayıp birer birer artan numaralar verir.

Aşağıdaki komutların hepsini çalıştırırsanız bir veri tabanı ve bir tablo oluşturur. Bu tablo üzerinde numaralandırma yapar.


/*---------------------------------------------
Veri tabanı oluştur. 
---------------------------------------------*/
CREATE DATABASE IF NOT EXISTS syData;
USE syData;

/*---------------------------------------------
Tablo oluştur.
---------------------------------------------*/
CREATE TABLE `deneme`
(
id INT NOT NULL,
sutun VARCHAR(50)
);

INSERT INTO deneme(id, sutun) VALUES(1,'a');
INSERT INTO deneme(id, sutun) VALUES(1,'b');
INSERT INTO deneme(id, sutun) VALUES(2,'d');
INSERT INTO deneme(id, sutun) VALUES(2,'c');
INSERT INTO deneme(id, sutun) VALUES(3,'e');
INSERT INTO deneme(id, sutun) VALUES(4,'f');

/*---------------------------------------------
Sıra Numarası Veren Sorgu
---------------------------------------------*/
SELECT 
@i:=@i+1 AS sayac, 
t.*
FROM 
deneme AS t,
(SELECT @i:=0) AS foo

Yararlanılan Kaynaklar
Etiketler
mysql