Heim > Datenbank > MySQL-Tutorial > Wie kann ich Benutzernamen effizient aus einer durch Kommas getrennten Spalte in einer Datenbank abrufen?

Wie kann ich Benutzernamen effizient aus einer durch Kommas getrennten Spalte in einer Datenbank abrufen?

Susan Sarandon
Freigeben: 2024-12-17 13:32:18
Original
637 Leute haben es durchsucht

How Can I Efficiently Retrieve Usernames from a Comma-Separated Column in a Database?

Benutzernamen aus einer durch Kommas getrennten Spalte extrahieren

Stellen Sie sich ein Szenario vor, in dem Sie mehrere Tabellen haben: tblA (Benutzer), tblB (Benutzernamen), und tblC (Nomenklatur mit durch Kommas getrennten Benutzer-IDs). Ziel ist es, bei der Suche nach einem bestimmten Nomenklaturwert alle Benutzernamen abzurufen.

Bestehender Ansatz und Einschränkungen

Die bereitgestellte Abfrage versucht, einen Cross-Join und eine Teilzeichenfolgenfunktion zu verwenden um die erste Benutzer-ID aus dem durch Kommas getrennten Wert zu extrahieren. Dieser Ansatz ist jedoch ineffizient und liefert keine genauen Ergebnisse, wenn der Nomenklatur mehrere Benutzer-IDs zugeordnet sind.

Normalisiertes Schema und verbesserte Abfrage

Es wird empfohlen Normalisieren Sie das Datenbankschema durch die Einführung einer Junction-Tabelle. Die Tabelle tblC_user sollte zwei Spalten enthalten: c_id (referenziert tblC) und userID (referenziert tblB). Dadurch entfällt die Notwendigkeit von durch Kommas getrennten Benutzer-IDs in tblC.

Die folgende Abfrage zeigt, wie Benutzernamen mithilfe des normalisierten Schemas extrahiert werden:

SELECT *
FROM tblC c
JOIN tblC_user cu ON (c.id = cu.c_id)
JOIN tblB b ON (b.userid = cu.userid)
WHERE c.nname = "new1";
Nach dem Login kopieren

Diese Abfrage ruft effizient alle zugehörigen Benutzernamen ab mit der Nomenklatur „new1“.

Vorteile von Normalisierung

Die Normalisierung des Datenbankschemas bietet mehrere Vorteile:

  • Verbesserte Datenintegrität und -genauigkeit
  • Schnellere Abfragen und kürzere Verarbeitungszeit
  • Vereinfachte Datenpflege und -änderung
  • Kaskadierende Beziehungen zur Pflege untergeordneter Datensätze

Das obige ist der detaillierte Inhalt vonWie kann ich Benutzernamen effizient aus einer durch Kommas getrennten Spalte in einer Datenbank abrufen?. 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