Heim > Datenbank > MySQL-Tutorial > Können Sie Tabellen basierend auf in JSON-Feldern in MySQL gespeicherten Daten verknüpfen?

Können Sie Tabellen basierend auf in JSON-Feldern in MySQL gespeicherten Daten verknüpfen?

Barbara Streisand
Freigeben: 2024-10-31 07:54:02
Original
455 Leute haben es durchsucht

Can You Join Tables Based on Data Stored in JSON Fields in MySQL?

Joins für JSON-Felder in MySQL ausführen

Frage:

In einer Datenbank mit einem JSON-Feld, in dem eine Liste von IDs gespeichert ist. Ist es möglich, SQL-Operationen für dieses Feld auszuführen und sie zum Verknüpfen mit einer anderen Tabelle zu verwenden?

Beispiel:

Bedenken Sie Folgendes Tabellen:

<code class="sql">CREATE TABLE user (
    user_id INT,
    user_name VARCHAR(50),
    user_groups JSON
);

CREATE TABLE user_group (
    user_group_id INT,
    group_name VARCHAR(50)
);</code>
Nach dem Login kopieren

Wir möchten eine Abfrage erstellen, die die folgenden Ergebnisse zurückgibt:

user_id | user_name | user_group_id | group_name|
-------------------------------------------------
101     | John      | 1             | Group A
101     | John      | 3             | Group C
Nach dem Login kopieren

Wo user_groups die Liste [1, 3] speichert, die Gruppen-IDs darstellt.

Antwort:

Ja, es ist möglich, Verknüpfungen für JSON-Felder in MySQL durchzuführen. Mit der Funktion JSON_CONTAINS können wir prüfen, ob ein JSON-Wert einen bestimmten Wert enthält:

<code class="sql">SELECT 
       u.user_id, 
       u.user_name, 
       g.user_group_id,
       g.group_name
   FROM user u
   LEFT JOIN user_group g 
       ON JSON_CONTAINS(u.user_groups, CAST(g.user_group_id as JSON), '$')</code>
Nach dem Login kopieren

In dieser Abfrage prüft JSON_CONTAINS, ob das Feld user_groups den Wert user_group_id enthält. Wenn ja, wird die Zeile in die Ergebnismenge aufgenommen. Der $-Operator in dieser Funktion gibt an, dass an einer beliebigen Stelle im Array nach dem angegebenen Wert gesucht werden soll.

Mit dieser Technik können Sie Verknüpfungen für JSON-Felder durchführen und relevante Daten aus verschachtelten Strukturen extrahieren.

Das obige ist der detaillierte Inhalt vonKönnen Sie Tabellen basierend auf in JSON-Feldern in MySQL gespeicherten Daten verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage