sql >> データベース >  >> RDS >> Mysql

MySQLに配列を保存する方法は?

    これを行う適切な方法は、複数のテーブルとJOINを使用することです。 クエリでそれらを。

    例:

    CREATE TABLE person (
    `id` INT NOT NULL PRIMARY KEY,
    `name` VARCHAR(50)
    );
    
    CREATE TABLE fruits (
    `fruit_name` VARCHAR(20) NOT NULL PRIMARY KEY,
    `color` VARCHAR(20),
    `price` INT
    );
    
    CREATE TABLE person_fruit (
    `person_id` INT NOT NULL,
    `fruit_name` VARCHAR(20) NOT NULL,
    PRIMARY KEY(`person_id`, `fruit_name`)
    );
    

    person_fruit テーブルには、人が関連付けられている果物ごとに1つの行が含まれ、personを効果的にリンクします。 およびfruits テーブルを一緒に、つまり

    1 | "banana"
    1 | "apple"
    1 | "orange"
    2 | "straberry"
    2 | "banana"
    2 | "apple"
    

    人とそのすべての果物を取得したい場合は、次のようにすることができます:

    SELECT p.*, f.*
    FROM person p
    INNER JOIN person_fruit pf
    ON pf.person_id = p.id
    INNER JOIN fruits f
    ON f.fruit_name = pf.fruit_name
    


    1. データベースリンクを介してOracleでストアド関数(ユーザー定義型の配列を返す)を呼び出す

    2. SQLServerのSalesforceSOQL

    3. 知っておくべきSQLServerシノニムに関する7つの事実

    4. AWS RDSでのMySQLからPostgreSQLへの移行、パート2