2 Aralık 2010, PERŞEMBE
Nasıl mysql sıralı numaralandırma boşlukları bulmak için?
Başka bir sistemden ithal edilen bir tablo ile bir veritabanı var. Otomatik artan bir sütun var, ve yinelenen değerler yoktur, ama değerleri eksik. Örneğin, bu çalışan sorgu:
select count(id) from arrc_vouchers where id between 1 and 100
dönüş ama 100, 87 yerine döner. Eksik sayılar dönecektir çalıştırabilirsiniz herhangi bir sorgu var mı? Örneğin, Kayıt numarası 1-70 için var olabilir ve 83-100, ama 71-82 kimliği ile kayıt yok. 71, 72, 73, vb dönmek istiyorum.
Bu mümkün mü?
CEVAP
19 Mayıs 2011, PERŞEMBE
İşte her boyutta tablo üzerinde çalışan sürümü (sadece 100 satır):
SELECT (t1.id 1) as gap_starts_at,
(SELECT MIN(t3.id) -1 FROM arrc_vouchers t3 WHERE t3.id > t1.id) as gap_ends_at
FROM arrc_vouchers t1
WHERE NOT EXISTS (SELECT t2.id FROM arrc_vouchers t2 WHERE t2.id = t1.id 1)
HAVING gap_ends_at IS NOT NULL
gap_starts_at
- cari açığın ilk kimliğigap_ends_at
- cari açığın son numarası
Bunu Paylaş:
Bunları nasıl belirli sütun adları ile...
Nasıl iki sıralı diziler Birliği hazır...
Nasıl windows komut satırından mysql v...
Nasıl MySQL kullanıcı hesaplarının bir...
Nasıl çıkış için MySQL csv biçiminde s...