Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mencari ID Sequential yang hilang dalam Jadual MySQL?

Bagaimana untuk mencari ID Sequential yang hilang dalam Jadual MySQL?

DDD
Lepaskan: 2024-11-30 08:21:11
asal
951 orang telah melayarinya

How to Find Missing Sequential IDs in a MySQL Table?

Mencari ID Hilang dalam Jadual MySQL

Dalam jadual pangkalan data hubungan, adalah penting untuk memastikan integriti data, termasuk mengekalkan ID unik dan berjujukan. Walau bagaimanapun, jurang dalam jujukan ID boleh berlaku disebabkan oleh pemadaman atau sisipan. Artikel ini menangani cabaran mendapatkan ID yang hilang daripada jadual MySQL, menyediakan pertanyaan terperinci untuk menyelesaikan isu ini.

Pernyataan Masalah

Pertimbangkan jadual MySQL berikut:

ID | Name
1  | Bob
4  | Adam
6  | Someguy
Salin selepas log masuk

Seperti yang anda boleh perhatikan, terdapat nombor ID yang hilang (2, 3, dan 5). Tugasnya adalah untuk membina pertanyaan yang akan mengembalikan hanya ID yang hilang, dalam kes ini, "2,3,5".

Penyelesaian

Pertanyaan berikut mendapatkan semula yang hilang ID:

SELECT a.id+1 AS start, MIN(b.id) - 1 AS end
    FROM testtable AS a, testtable AS b
    WHERE a.id < b.id
    GROUP BY a.id
    HAVING start < MIN(b.id)
Salin selepas log masuk

Penjelasan

  • Pertanyaan mencipta dua alias, a dan b, untuk jadual ujian.
  • Ia mengira julat yang hilang dengan menolak ID a daripada ID minimum b (selepas memastikan bahawa a.id kurang daripada b.id).
  • KUMPULAN OLEH a.id mengkategorikan keputusan berdasarkan a.id, mewakili permulaan julat yang hilang.
  • MESTI mula < MIN(b.id) mengecualikan jurang di mana ID seterusnya diduduki (mis., 5 dikecualikan kerana terdapat ID 6).

Bacaan Tambahan

  • [Mengenal pasti Jurang Jujukan dalam MySQL](https://web.archive.org/web/20220706195255/http://www.codediesel.com/mysql/sequence-gaps-in-mysql/)

Atas ialah kandungan terperinci Bagaimana untuk mencari ID Sequential yang hilang dalam Jadual MySQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan