Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Melakukan Carian Berbilang Jadual Berasaskan Kata Kunci dalam PHP dan MySQL?

Bagaimana untuk Melakukan Carian Berbilang Jadual Berasaskan Kata Kunci dalam PHP dan MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-14 19:07:02743semak imbas

How to Perform a Keyword-Based Multi-Table Search in PHP and MySQL?

PHP MySQL: Carian Berbilang Jadual dengan Kata Kunci

Mencari hasil daripada berbilang jadual dalam pangkalan data MySQL menggunakan kata kunci boleh menjadi satu cabaran . Dalam artikel ini, kami menangani masalah mencari merentas 'messages.content', 'messages.title', 'topik.kandungan', 'topik.tajuk', 'komen.kandungan' dan 'komen.tajuk' daripada tiga yang berasingan jadual ('mesej', 'topik' dan 'komen') menggunakan operator 'LIKE'.

Pertanyaan untuk Berbilang Jadual Carian:

Untuk melakukan carian merentas berbilang jadual, kami boleh menggunakan operator UNION. Pertanyaan berikut menggabungkan hasil daripada setiap jadual:

$query = "(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" .
           $keyword . "%' OR title LIKE '%" . $keyword ."%')
           UNION
           (SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" .
           $keyword . "%' OR title LIKE '%" . $keyword ."%')
           UNION
           (SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" .
           $keyword . "%' OR title LIKE '%" . $keyword ."%')";

mysql_query($query);

Mengenalpasti Jadual Asal Keputusan:

Setelah keputusan diperoleh, kita memerlukan satu cara untuk menentukan jadual dari mana setiap baris berasal. Untuk ini, kami telah menambahkan lajur 'jenis' pada setiap baris, menunjukkan nama jadual ('msg' untuk 'mesej', 'topik' untuk 'topik' dan 'ulasan' untuk 'ulasan'). Selepas melaksanakan pertanyaan, keputusan boleh diakses dan diisih berdasarkan lajur 'jenis' untuk mengasingkan baris daripada jadual tertentu.

Contoh Penggunaan:

Andaikan kita mempunyai kata kunci 'contoh' dan ingin mencari semua hasil yang sepadan. Carian berbilang jadual akan mengembalikan semua baris di mana kata kunci muncul dalam medan 'kandungan' atau 'tajuk' mana-mana daripada tiga jadual. Kemudian kita boleh menggunakan lajur 'jenis' untuk mengumpulkan dan memaparkan keputusan secara berasingan bagi setiap jadual.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Carian Berbilang Jadual Berasaskan Kata Kunci dalam PHP dan 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