Effiziente Suche nach durch Kommas getrennten Werten in der MySQL-Datenbank
Bei der Arbeit mit Datentabellen, die durch Kommas getrennte Werte enthalten, kann das Finden bestimmter Übereinstimmungen möglich sein eine herausfordernde Aufgabe sein. In diesem Fall haben Sie zwei Tabellen: „customers“ (mit E-Mail-Adressen) und „imap_emails“ (wobei das Feld „an“ durch Kommas getrennte E-Mail-Adressen enthält). Sie müssen effizient in der Tabelle imap_emails suchen, basierend auf E-Mail-Adressen aus der Kundentabelle.
Anstatt eine LIKE-Bedingung zu verwenden, können Sie die Funktion FIND_IN_SET nutzen, um eine gezieltere Suche durchzuführen. Mit dieser Funktion können Sie überprüfen, ob ein bestimmter Wert in einer durch Kommas getrennten Zeichenfolge gefunden wird.
Lösung:
Die folgende Abfrage zeigt, wie Sie FIND_IN_SET effizient verwenden können Suche:
SELECT * FROM imap_emails INNER JOIN customers ON FIND_IN_SET(customers.email, imap_emails.to) > 0
Diese Abfrage führt einen inneren Join zwischen den beiden Tabellen durch und vergleicht Zeilen, in denen die E-Mail-Adresse des Kunden vorhanden ist das durch Kommas getrennte Feld der Tabelle imap_emails. Durch die Verwendung von FIND_IN_SET anstelle von LIKE verbessern Sie die Sucheffizienz und vermeiden Fehlalarme.
Zusätzliche Überlegungen:
In Ihrer Frage haben Sie erwähnt, dass Sie keine Beziehungen zwischen verwenden können die Tische. Wenn Sie jedoch die Möglichkeit haben, eine Beziehung herzustellen (z. B. mithilfe von Fremdschlüsseln), würde dies die Datenintegrität und Leistung Ihrer Suchanfragen erheblich verbessern.
Das obige ist der detaillierte Inhalt vonWie kann man in MySQL effizient nach durch Kommas getrennten Werten suchen, ohne Tabellenbeziehungen zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!