Dalam pertanyaan ini, poster menemui nilai yang hilang dalam lajur autokenaikan jadual, walaupun tiada pendua. Matlamat masalah adalah untuk mengenal pasti dan mengembalikan nilai nombor yang hilang, yang mungkin tidak berturut-turut, seperti id 71-82.
Penyelesaian yang lebih baik
JustPlainMJS menawarkan alternatif yang meningkatkan prestasi dengan ketara.
Penyelesaian yang kurang cekap
Untuk jadual dalam sebarang saiz, pertimbangkan pendekatan berikut:
<code class="language-sql">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</code>
Dalam pertanyaan ini:
gap_starts_at
mewakili id pertama dalam jurang semasa. gap_ends_at
mewakili id terakhir dalam jurang semasa. Atas ialah kandungan terperinci Bagaimana untuk Mencari Nombor Urutan yang Hilang dalam Lajur Auto-Increment MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!