Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memesan Hasil Carian MySQL mengikut 'Padanan Terbaik'?

Bagaimanakah Saya Boleh Memesan Hasil Carian MySQL mengikut 'Padanan Terbaik'?

Barbara Streisand
Lepaskan: 2024-12-28 15:21:14
asal
210 orang telah melayarinya

How Can I Order MySQL Search Results by

Memesan Keputusan MySQL mengikut "Padanan Terbaik"

Apabila mencari jadual pangkalan data dengan ciri carian langsung, selalunya wajar untuk menyusun keputusan mengikut cara yang mengutamakan perlawanan terbaik. Secara lalai, pertanyaan mudah seperti yang disediakan mungkin tidak menyusun hasil secara berkesan berdasarkan kedudukan permulaan rentetan carian.

Untuk mencapai susunan "padanan terbaik" yang lebih tepat, pertimbangkan pilihan berikut:

Memesan Padanan mengikut Kedudukan Mula

Jika matlamatnya adalah untuk mengisih hasil dengan rentetan yang dipadankan berlaku pada permulaan sebagai keutamaan tertinggi, pertanyaan boleh diubah suai seperti berikut:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY
  CASE
    WHEN word LIKE 'searchstring%' THEN 1
    WHEN word LIKE '%searchstring' THEN 3
    ELSE 2
  END
Salin selepas log masuk

Ini akan mengutamakan padanan yang bermula dengan rentetan carian (diberikan nilai 1), diikuti oleh padanan yang mengandungi rentetan (diberikan nilai 3), dan akhirnya padan di mana rentetan berlaku pada mana-mana kedudukan lain (diberikan nilai 2).

Memesan Padanan mengikut Kedudukan

Sebagai alternatif, jika matlamatnya adalah untuk mengisih hasil berdasarkan kedudukan rentetan yang dipadankan dalam perkataan, pertanyaan boleh menggunakan fungsi LOCATE:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)
Salin selepas log masuk

Pertanyaan ini akan memerintahkan keputusan berdasarkan indeks kejadian pertama rentetan carian dalam setiap perkataan.

Memecah Ikatan

Dalam senario di mana berbilang perkataan sepadan dengan kriteria carian secara sama rata, mungkin wajar untuk memperkenalkan pemutus seri untuk memperhalusi lagi susunan. Ini boleh dicapai dengan menambah klausa ORDER BY tambahan:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word
Salin selepas log masuk

pemegang tempat boleh digantikan dengan sebarang kriteria tambahan yang digunakan untuk pemeringkatan, seperti panjang perkataan, susunan abjad atau metrik tersuai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Hasil Carian MySQL mengikut 'Padanan Terbaik'?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan