Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melakukan Carian Teks Penuh Sensitif Aksen dalam MySQL?

Bagaimanakah Saya Boleh Melakukan Carian Teks Penuh Sensitif Aksen dalam MySQL?

DDD
Lepaskan: 2024-12-17 02:22:24
asal
791 orang telah melayarinya

How Can I Perform Accent-Sensitive Full-Text Searches in MySQL?

Menggunakan Pengumpulan untuk Carian Sensitif Aksen dalam MySQL

Apabila menjalankan carian teks penuh dalam MySQL, mungkin perlu mempertimbangkan aksen aksara sensitiviti. Dalam situasi ini, anda mungkin menghadapi cabaran apabila cuba membezakan antara perkataan beraksen dan tanpa aksen, seperti yang ditunjukkan oleh contoh yang diberikan dalam soalan.

Untuk menangani isu ini dan memastikan carian sensitif loghat, anda perlu dua pilihan:

  1. Isytiharkan Sensitif Aksen Pengumpulan:

    Ubah suai himpunan medan berkenaan untuk menggunakan pengumpulan binari, seperti utf8_bin. Ini akan membandingkan bait yang dikodkan UTF-8 sebagai data mentah, menghasilkan sensitiviti aksen.

    ALTER TABLE words
    ALTER COLUMN word VARCHAR(10) COLLATE utf8_bin;
    Salin selepas log masuk
  2. Gunakan Klausa Susun dalam Pertanyaan:

    Jika carian anda biasanya tidak sensitif aksen tetapi anda memerlukan pengecualian untuk pertanyaan tertentu, anda boleh menambah COLLATE klausa kepada medan bermasalah dalam pertanyaan anda:

    SELECT *  FROM `words`
    WHERE `word` = 'abád' COLLATE utf8_bin;
    Salin selepas log masuk

Pertimbangan Tambahan untuk MySQL 8.0 dan Versi Masa Depan:

  • Sentiasa padankan set aksara dengan permulaan nama himpunan.
  • Himpunan berakhir dengan _bin (cth., utf8mb4_bin) abaikan kedua-dua huruf besar dan aksen.
  • Koleksi yang mengandungi _as_ (cth., utf8mb4_as_ci) mengabaikan aksen tetapi mengekalkan kepekaan huruf besar kecil.
  • Pertimbangkan sebagai set aksara lalai,4 menyediakan Unicode yang lebih baik sokongan.
  • Elakkan bergantung pada rutin penukaran seperti CONVERT() dengan menyatakan penyusunan yang betul semasa penciptaan lajur atau definisi jadual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Carian Teks Penuh Sensitif Aksen 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan