Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Peratusan Kesamaan String dalam MySQL?

Bagaimana untuk Mengira Peratusan Kesamaan String dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-30 17:59:09
asal
220 orang telah melayarinya

How to Calculate String Similarity Percentage in MySQL?

Cara Mengira Kesamaan Rentetan dalam MySQL

Masalah:

Anda mempunyai dua rentetan dalam MySQL dan perlu menentukannya peratusan persamaan. Sebagai contoh, memandangkan rentetan "@a = 'Selamat Datang ke Limpahan Tindanan'" dan "@b = 'Hello untuk limpahan tindanan'", anda ingin mencari persamaan antara mereka.

Penyelesaian:

  1. Buat Jarak Levenshtein Fungsi:

    Gunakan fungsi berikut untuk mengira jarak Levenshtein antara dua rentetan:

    CREATE FUNCTION `levenshtein`(s1 text, s2 text) RETURNS int(11)
    DETERMINISTIC
    BEGIN 
    ...
    END
    Salin selepas log masuk

    Fungsi di atas disesuaikan daripada yang disediakan di http://www.artfulsoftware .com/infotree/queries.php#552.

  2. Buat Fungsi Nisbah Kesamaan Levenshtein:

    Untuk menukar jarak Levenshtein kepada nisbah persamaan, gunakan fungsi ini:

    CREATE FUNCTION `levenshtein_ratio`( s1 text, s2 text ) RETURNS int(11)
    DETERMINISTIC
    BEGIN 
    ...
    END
    Salin selepas log masuk

Penggunaan:

Untuk mengira peratusan persamaan antara dua rentetan, gunakan yang berikut formula:

similarity_percentage = ((1 - LEVENSHTEIN(s1, s2) / MAX_LENGTH) * 100)
Salin selepas log masuk
  • LEVENSHTEIN(s1, s2): Mengira jarak Levenshtein antara dua rentetan.
  • MAX_LENGTH: Panjang maksimum kedua-dua rentetan rentetan.

Contoh:

SELECT levenshtein_ratio('Welcome to Stack Overflow', 'Hello to stack overflow') AS similarity;
Salin selepas log masuk

Pertanyaan ini akan mengembalikan peratusan persamaan antara dua rentetan, yang dalam kes ini ialah 66%.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Peratusan Kesamaan String dalam 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan