MySQL TARAFINDAN sırayla satır pozisyon alın
Aşağıdaki MySQL tablo:
-----------------------------
id INT UNSIGNED
name VARCHAR(100)
-----------------------------
Nasıl bir seçim yapabilirtekname ASC göre sıralandığında tablo diğer satırlar arasında satır VE konumu. Eğer öyleyse tablo verileri bu gibi görünüyor eğer, adına göre:
-----------------------------
id | name
-----------------------------
5 | Alpha
7 | Beta
3 | Delta
.....
1 | Zed
-----------------------------
Nasıl Beta satır satır geçerli konumunu seçmek elde edebilir miyim? Sonuç şöyle olurdu arıyorum ayarlayın:
-----------------------------
id | position | name
-----------------------------
7 | 2 | Beta
-----------------------------
SELECT * FROM tbl ORDER BY name ASC sonra basit bir numaralandırma PHP satırları yapabilirim, ama savurgan sadece tek bir satır için potansiyel olarak büyük bir yük seviyesinde bağımsız gibi görünüyor.
CEVAP
Bunu kullanın:
SELECT x.id,
x.position,
x.name
FROM (SELECT t.id,
t.name,
@rownum := @rownum 1 AS position
FROM TABLE t
JOIN (SELECT @rownum := 0) r
ORDER BY t.name) x
WHERE x.name = 'Beta'
...eÅŸsiz konumu bir deÄŸeri olsun. Bu:
SELECT t.id,
(SELECT COUNT(*)
FROM TABLE x
WHERE x.name <= t.name) AS position
t.name
FROM TABLE t
WHERE t.name = 'Beta'
...bağları aynı değeri verecektir. YANİ: iki değerleri ile ikinci sırada, edecekler de var pozisyon 2 zaman ilk sorgu verecek bir pozisyonun 2 tanesini, 3 ve diğer...

MySQL: bir Dönen birden çok sütun-satı...
Sorgulama alan BOŞ olduğu Codeıgniter,...
Satır kopyalama, ama birkaç alan değiş...
Nasıl bir zamanlar her satır sorgu tar...
jQuery bir elementin içinde fare pozis...