Rumah  >  Artikel  >  pangkalan data  >  Mengapakah saya mendapat \"Tidak dapat mencari indeks FULLTEXT yang sepadan dengan senarai lajur\" apabila mencari berbilang lajur?

Mengapakah saya mendapat \"Tidak dapat mencari indeks FULLTEXT yang sepadan dengan senarai lajur\" apabila mencari berbilang lajur?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 14:17:02760semak imbas

 Why am I getting

Menyelesaikan masalah "Tidak dapat mencari indeks FULLTEXT yang sepadan dengan senarai lajur" untuk Carian Berbilang Lajur

Apabila membina MATCH...LAWAN pertanyaan melibatkan berbilang lajur dalam indeks teks penuh, adalah penting untuk memastikan bahawa susunan lajur dalam indeks sepadan dengan tertib yang muncul dalam klausa MATCH. Berdasarkan mesej ralat yang anda temui, nampaknya definisi indeks teks penuh anda merangkumi lebih banyak lajur daripada klausa MATCH anda.

Seperti yang anda nyatakan, jadual anda mengandungi indeks teks penuh yang ditakrifkan pada berbilang lajur:

FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)

Walau bagaimanapun, klausa MATCH anda hanya merangkumi lajur berikut:

MATCH(`brand`) AGAINST('Skoda');

Ketakpadanan antara bilangan lajur dalam indeks dan klausa MATCH ini menyebabkan ralat. Untuk membetulkan isu ini, anda perlu melaraskan sama ada takrif indeks atau klausa MATCH untuk memastikan ia sejajar.

Pendekatan yang disyorkan ialah mengubah suai indeks teks penuh agar sepadan dengan lajur yang anda ingin gunakan dalam carian anda. Dalam kes ini, anda boleh melaksanakan pertanyaan berikut untuk menambah indeks teks penuh baharu yang mengandungi hanya lajur jenama:

ALTER TABLE products ADD FULLTEXT(brand);

Selepas menambah indeks yang betul, jalankan semula pertanyaan MATCH anda:

SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');

Ini sepatutnya mengembalikan hasil yang dijangkakan tanpa mesej ralat.

Atas ialah kandungan terperinci Mengapakah saya mendapat \"Tidak dapat mencari indeks FULLTEXT yang sepadan dengan senarai lajur\" apabila mencari berbilang lajur?. 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