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

配列を保持するmySQL列

    MySQLは配列の保存をサポートしていません。ただし、2番目のテーブルを使用して、ユーザーとアイテム間の関係を格納することにより、配列をエミュレートできます。テーブルusersがあるとします :

    CREATE TABLE users (
        user_id SERIAL PRIMARY KEY,
        ...
    );
    

    そして、itemsを定義するテーブルがあります :

    CREATE TABLE items (
        item_id SERIAL PRIMARY KEY,
        ...
    );
    

    user_itemsのようなテーブルを使用して、ユーザーが持っているアイテムを関連付けることができます :

    CREATE TABLE user_items (
        id SERIAL PRIMARY KEY,
        user_id BIGINT UNSIGNED NOT NULL,
        item_id BIGINT UNSIGNED NOT NULL,
        ...,
        FOREIGN KEY (user_id)
            REFERENCES users (user_id),
        FOREIGN KEY (item_id)
            REFERENCES items (item_id)
    );
    

    次に、ユーザー123のアイテムを特定します 取得した場合は、 JOINを使用できます に似ています:

    SELECT items.*
    FROM users
    INNER JOIN user_items
        ON user_items.user_id = users.user_id
    INNER JOIN items
        ON items.item_id = user_items.item_id
    WHERE users.user_id = 123; -- Or some other condition.
    


    1. PostgreSQLトリガーとストアド関数の基本

    2. Oracle PL/SQLコレクション-データベースにネストされた表を作成

    3. 特定の値によるLaravelの注文結果

    4. SQLiteで大文字に変換する方法