PHP MySQL:使用關鍵字進行多表搜尋
使用關鍵字從MySQL 資料庫中的多個表格中尋找結果可能是一個挑戰。在本文中,我們解決了從三個單獨的內容中搜尋“messages.content”、“messages.title”、“topics.content”、“topics.title”、“comments.content”和“comments.title”的問題使用“LIKE”運算符的表(“訊息”、“主題”和“評論”)。
多表搜尋查詢:
執行跨多個表進行搜索,我們可以使用 UNION 運算子。以下查詢組合了每個表格的結果:
$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);
識別結果的表來源:
一旦獲得結果,我們需要一種方法來確定每行源自的表。為此,我們在每一行中新增了一個“type”列,指示表名稱(“msg”表示“messages”,“topic”表示“topics”,“comment”表示“comments”)。執行查詢後,可以根據“type”列存取結果並對其進行排序,以將行與特定表隔離。
用法範例:
假設我們有一個關鍵字「example」並且想要找出所有符合的結果。多表搜尋將傳回關鍵字出現在三個表中任意一個的「內容」或「標題」欄位中的所有行。然後,我們可以使用“類型”列對每個表進行分組並分別顯示結果。
以上是如何在 PHP 和 MySQL 中執行基於關鍵字的多表搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!