Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencari Baris Tunggal dengan Cekap dengan Mengurangkan Ketepatan Carian dalam SQL?
Mencari Baris Tunggal dengan Ketepatan Penurunan Menggunakan Penyata PILIH Berbilang
Dalam operasi pangkalan data, mungkin perlu mencari satu baris menggunakan berbilang tahap ketepatan Ini melibatkan penurunan kriteria carian secara berperingkat sehingga keputusan ditemui Contohnya, pertimbangkan untuk mencari imej dalam a jadual:
Masalah:
Cari baris dalam jadual yang memenuhi syarat berikut:
Jika tiada hasil untuk pertanyaan ini, cuba pertanyaan berikut:
Jika ada masih tiada hasil untuk pertanyaan ini , kemudian cuba pertanyaan berikut:
Penyelesaian:
Menggunakan pernyataan UNION ALL, semua pertanyaan ini boleh dilaksanakan sekali gus, dengan itu mencapai carian dengan ketepatan yang semakin berkurangan. Pernyataan ini menggabungkan hasil pertanyaan yang berbeza dalam susunan yang ditentukan, seperti berikut:
SELECT * FROM image WHERE name = 'text' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'text' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
Pengoptimuman:
Untuk meningkatkan prestasi, pastikan untuk mencipta yang sesuai Indeks ini sangat penting. Untuk contoh ini, adalah disyorkan untuk membuat indeks pada lajur berikut:
dengan menambah LIMIT 1 klausa, Postgres Prestasi boleh dioptimumkan dengan menghentikan pertanyaan lanjut selepas baris pertama yang memenuhi kriteria ditemui.
Pengertian:
Kaedah ini boleh digeneralisasikan dengan sebarang bilangan parameter carian. Cuma tambah lebih banyak pernyataan SELECT di dalam pernyataan UNION ALL.
Isih:
Walaupun klausa LIMIT 1 hanya mengembalikan satu baris, kaedah ini mungkin tidak praktikal jika anda ingin mengisih hasil berdasarkan perkaitan. Dalam kes ini, pertanyaan yang lebih kompleks diperlukan untuk mencapai pengisihan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Baris Tunggal dengan Cekap dengan Mengurangkan Ketepatan Carian dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!