Rumah > pangkalan data > tutorial mysql > Cara Memesan Hasil Carian MySQL mengikut Relevan: Memulakan Perlawanan Dahulu?

Cara Memesan Hasil Carian MySQL mengikut Relevan: Memulakan Perlawanan Dahulu?

Linda Hamilton
Lepaskan: 2024-12-30 08:10:10
asal
369 orang telah melayarinya

How to Order MySQL Search Results by Relevance: Beginning Matches First?

Memesan Keputusan MySQL mengikut Relevan: Padanan Terbaik Didahulukan

Dalam pangkalan data MySQL, fungsi carian langsung selalunya melibatkan pengisihan hasil berdasarkan perkaitan. Secara lalai, keputusan disusun mengikut abjad, tetapi bagaimana jika kita ingin mengutamakan hasil yang rentetan carian sepadan dengan permulaan perkataan?

Untuk mencapai ini, kita boleh menggunakan kenyataan CASE dan padanan corak untuk mencipta tersuai pesanan:

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

Pertanyaan ini memberikan keutamaan 1 kepada hasil yang rentetan carian muncul pada permulaan perkataan, 3 kepada rentetan yang terdapat rentetan padanan dalam perkataan dan 2 pada padanan yang tinggal.

Sebagai alternatif, untuk memesan berdasarkan kedudukan rentetan yang dipadankan, kita boleh menggunakan fungsi LOCATE:

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

Pertanyaan ini mengisih keputusan berdasarkan kedudukan rentetan carian dalam perkataan, memberi keutamaan kepada padanan yang ditemui lebih awal dalam perkataan.

Akhir sekali, sekiranya berlaku ikatan apabila berbilang perkataan sepadan dengan rentetan carian, kami boleh menambah peraturan pengisihan sekunder untuk mengabjadkan hasil dalam setiap kumpulan keutamaan:

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

Dengan melakukan pesanan tersuai berdasarkan kedudukan rentetan carian, kami boleh meningkatkan perkaitan hasil carian dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Cara Memesan Hasil Carian MySQL mengikut Relevan: Memulakan Perlawanan Dahulu?. 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