Rumah > Artikel > pangkalan data > Bagaimana untuk Melakukan Carian Berbilang Jadual Berasaskan Kata Kunci dalam PHP dan 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!