首頁 > 資料庫 > mysql教程 > 如何在 PHP 和 MySQL 中拆分和儲存逗號分隔清單中的關鍵字?

如何在 PHP 和 MySQL 中拆分和儲存逗號分隔清單中的關鍵字?

Mary-Kate Olsen
發布: 2024-11-04 04:45:29
原創
761 人瀏覽過

How to Split and Store Keywords from a Comma-Separated List in PHP and MySQL?

PHP和MySQL中有效的關鍵字分割和儲存

在資料庫管理中,你可能會遇到需要從中提取和組織關鍵字的場景給定的欄位。本文示範了一種使用 PHP 和 MySQL 來拆分關鍵字,將它們儲存在專用表中,並使用中間表將它們連結回原始資料的最佳化方法。

問題陳述:

給定一個包含貼文ID 和儲存為逗號分隔清單的關聯標籤的表,任務涉及:

  • 將標籤分隔為各個關鍵字
  • 將唯一關鍵字儲存在單獨的表格
  • 在貼文和關鍵字之間建立中間連線

解決方案:

最佳化資料庫架構:

  • Post_Tags:將原始貼文資料和標籤儲存為字串
  • 關鍵字:儲存唯一關鍵字
  • Post_Keywords:連結貼文與關鍵字的中間表

:連結貼文與關鍵字的中間表

<code class="php">// Connect to the database
$mysqli = new mysqli($host, $user, $password, $database);

// Initialize variables
$stmt = $mysqli->prepare("SELECT post_id, tags_csv FROM post_tags");
$stmt->execute();
$result = $stmt->get_result();

// Loop through the post tags
while ($row = $result->fetch_assoc()) {
    $post_id = $row['post_id'];
    $tags = explode(',', $row['tags_csv']);

    // Insert unique keywords into the Keywords table
    foreach ($tags as $tag) {
        $stmt = $mysqli->prepare("INSERT IGNORE INTO keywords (name) VALUES (?)");
        $stmt->bind_param("s", $tag);
        $stmt->execute();
    }

    // Get keyword IDs and insert into Post_Keywords table
    foreach ($tags as $tag) {
        $stmt = $mysqli->prepare("SELECT keyword_id FROM keywords WHERE name = ?");
        $stmt->bind_param("s", $tag);
        $stmt->execute();
        $result = $stmt->get_result();
        $keyword_id = $result->fetch_assoc()['keyword_id'];

        $stmt = $mysqli->prepare("INSERT IGNORE INTO post_keywords (post_id, keyword_id) VALUES (?, ?)");
        $stmt->bind_param("ii", $post_id, $keyword_id);
        $stmt->execute();
    }
}</code>
登入後複製
PHP程式碼:

    好處:
  • 針對高效率關鍵字查詢的最佳化架構
  • 利用關鍵字表確保關鍵字唯一性

透過中間表關係維護資料完整性

注意:提供的解決方案僅專注於核心功能,不考慮資料驗證或錯誤處理等其他方面。

以上是如何在 PHP 和 MySQL 中拆分和儲存逗號分隔清單中的關鍵字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板