ホームページ >データベース >mysql チュートリアル >MySQL で配列のようなデータを保存および取得するにはどうすればよいですか?

MySQL で配列のようなデータを保存および取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-13 17:27:12914ブラウズ

How Can I Store and Retrieve Array-Like Data in MySQL?

MySQL データベースに配列を格納するメソッド

MySQL はネイティブに配列をサポートしていませんが、配列のようなデータを格納するための代替アプローチを提供します。一般的な方法の 1 つは、複数のテーブルを利用し、JOIN 操作を使用してテーブル間の関係を確立することです。

複数のテーブルの作成

質問で説明されているシナリオを考えてみましょう。果物の配列を Person テーブルの "fruits" 列に保存するには、次のテーブルを作成します:

  • person:

    • id (INT)
    • 名前(VARCHAR(50))
  • フルーツ:

    • フルーツ名 (VARCHAR(20))
    • 色 (VARCHAR(20) ))
    • 価格(INT)
  • person_fruit (リンクテーブル):

    • person_id (INT)
    • fruit_name (VARCHAR(20))

関係の確立

Person_Fruit テーブルはリンク テーブルとして機能し、多対Person テーブルと Fruit テーブルの間には多くの関係があります。このテーブルの 1 行は、特定の人物と特定の果物の間の関係を表します。

配列のようなデータの保存

ある人の果物の配列を格納するには"fruits" 列では、各行が 1 つの果物を表す複数の行を Person_Fruit テーブルに挿入します。

たとえば、次のようにします。 id=1 の人の果物「リンゴ」、「オレンジ」、「バナナ」を保存し、次の行を Person_Fruit に挿入します:

(1, "apple")
(1, "orange")
(1, "banana")

配列のようなデータの取得

人の果物の配列を取得するには、次のコマンドを使用して、person、person_fruit、および Fruit テーブルを結合します。クエリ:

SELECT p.`name` AS `person_name`, GROUP_CONCAT(f.`fruit_name`) AS `fruits`
FROM Person AS p
INNER JOIN Person_Fruit AS pf ON p.`id` = pf.`person_id`
INNER JOIN Fruit AS f ON pf.`fruit_name` = f.`fruit_name`
GROUP BY p.`name`

以上がMySQL で配列のようなデータを保存および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。