Heim > Datenbank > MySQL-Tutorial > Kann ich mit reinem MySQL Tabellen mit durch Semikolons getrennten Werten in einer Spalte verknüpfen?

Kann ich mit reinem MySQL Tabellen mit durch Semikolons getrennten Werten in einer Spalte verknüpfen?

Barbara Streisand
Freigeben: 2024-11-01 10:27:02
Original
918 Leute haben es durchsucht

Can I Join Tables with Semi-colon Separated Values in a Column Using Pure MySQL?

Kann ich das mit reinem MySQL lösen? (Verknüpfen von durch „;“ getrennten Werten in einer Spalte)

Frage:

Gegeben sind zwei Tabellen, eine Benutzertabelle t1 mit einer Ressourcenspalte, die „;“ enthält. ' Wenn Sie getrennte Ressourcen-IDs und eine Ressourcentabelle t2 mit einer ID und Daten haben, möchten Sie t1 und t2 verbinden, um eine Tabelle mit Benutzer- und Ressourcendaten zu erhalten.

Problem:

Sie können keine externen Sprachen verwenden, um die Ergebnisse zu manipulieren, und die Tabelle „user_resources“ ist denormalisiert.

Lösung:

Erstellen Sie eine Tabelle namens „Integerseries“ mit Zahlen von 1 bis eine gewisse Grenze. Verwenden Sie die Funktionen COUNT_IN_SET und VALUE_IN_SET, die die Ressourcenspalte als Array behandeln, um die Tabelle zu normalisieren. Verbinden Sie sich dann mit integerseries, um einzelne Ressourcen-IDs zu extrahieren.

<code class="sql">SELECT user_resource.user, 
       resource.data

FROM user_resource 
     JOIN integerseries AS isequence 
       ON isequence.id <= COUNT_IN_SET(user_resource.resources, ';') 

     JOIN resource 
       ON resource.id = VALUE_IN_SET(user_resource.resources, ';', isequence.id)      
ORDER BY
       user_resource.user,  resource.data</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKann ich mit reinem MySQL Tabellen mit durch Semikolons getrennten Werten in einer Spalte 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