sql >> Database >  >> RDS >> Mysql

mySQL-kolom om array te bevatten

MySQL biedt geen ondersteuning voor het opslaan van arrays. U kunt echter een tweede tabel gebruiken om een ​​array te emuleren door de relatie tussen de gebruikers en items op te slaan. Stel dat u de tabel users . heeft :

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

En je hebt een tabel die items definieert :

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

U kunt relateren welke items een gebruiker heeft met behulp van een tabel die lijkt op 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)
);

Om vervolgens te bepalen welke items gebruiker 123 heeft verworven, kunt u JOIN . gebruiken lijkt op:

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. Een blob invoegen in een database met behulp van sql server management studio

  2. Een opgeslagen procedure maken in SQL Server

  3. DatabaseError:huidige transactie is afgebroken, opdrachten genegeerd tot einde transactieblok?

  4. Optimalisatiedrempels - Gegevens groeperen en aggregeren, deel 5