Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pesanan 'Padanan Terbaik' dalam Carian Langsung MySQL?

Bagaimana untuk Melaksanakan Pesanan 'Padanan Terbaik' dalam Carian Langsung MySQL?

DDD
DDDasal
2024-12-29 14:16:12594semak imbas

How to Implement

Pesanan MySQL mengikut "Padanan Terbaik"

Apabila melakukan carian langsung dalam MySQL, susunan lalai hasil berdasarkan susunan abjad mungkin tidak menyediakan hasil yang paling relevan. Untuk mengutamakan hasil yang rentetan carian kelihatan lebih dekat dengan permulaan perkataan, pertimbangkan untuk melaksanakan susunan "padanan terbaik".

Pemesanan mengikut Kedudukan Mula

Untuk meletakkan hasil carian apabila rentetan carian muncul pada permulaan perkataan dahulu, anda boleh menggunakan susunan berbilang peringkat pendekatan.

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

Dalam pertanyaan ini:

  • Ungkapan KES memberikan keutamaan berdasarkan tempat rentetan carian sepadan dalam perkataan.
  • Keputusan disusun dengan padanan bermula pada permulaan (keutamaan 1) muncul dahulu.

Pemesanan dengan Kedudukan dalam Word

Sebagai alternatif, untuk mengisih hasil berdasarkan kedudukan rentetan carian dalam perkataan, fungsi LOCATE() boleh digunakan.

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)

Dengan ini pendekatan:

  • LOCATE() menentukan kedudukan permulaan rentetan carian dalam perkataan.
  • Keputusan disusun mengikut kedudukan ini, dengan kedudukan yang lebih rendah (lebih dekat dengan permulaan) mendapat kedudukan yang lebih tinggi.

Mengendalikan Pemecah Tie

Dalam kes di mana berbilang perkataan berkongsi kedudukan rentetan carian yang sama, anda mungkin ingin memperkenalkan pengisihan sekunder kriteria.

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word

Dengan menambahkan kriteria susunan lain (cth., pengisihan abjad), anda boleh memutuskan sebarang ikatan dan memastikan susunan yang konsisten.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pesanan 'Padanan Terbaik' dalam Carian Langsung MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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