Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Zählen, wie oft ein String in einer Spalte vorkommt

Hier werden die SQL Grundlagen behandelt...

Zählen, wie oft ein String in einer Spalte vorkommt

Beitragvon Maik_2019 » Mo 6. Mai 2019, 18:05

Hallo.
Ich habe da ein Problem, bei dem ich nicht weiterkomme...

In meiner Tabelle gibt es die Textspalte "fotos". Darin enthalten sind Kommentare und Jahreszahlen. Ich möchte nun ermitteln, wie oft eine bestimmte Jahreszahl in der gesamten Spalte vorkommt.
Dabei kann es passieren, dass die gesuchte Jahreszahl in einer Reihe gar nicht, einmal oder mehrmals vorkommt.

Beispiele für Einträger der Spalte "fotos":

Reihe1: fotos-> "Nordsee 2008, Münster 2009, Ostsee 2008, Rügen 2011"
Reihe2: fotos->"Ameland 2009"
Reihe3: fotos->"Nordsee 2004, Ostsee 2008, Rügen 2009, New York 2019"

Nun möchte ich wissen, wie oft die Zahl 2008 darin vorkommt.
Das wäre bei dem Beispiel 3x (also 2x bei der ersten, nicht bei der 2. und 1x bei der 3. Reihe)

Wie kann ich diese Abfrage schnell und sicher in mysql abfragen ?!

Danke für eure Hilfe,
Maik
Maik_2019
 
Beiträge: 3
Registriert: Mo 6. Mai 2019, 17:56

Re: Zählen, wie oft ein String in einer Spalte vorkommt

Beitragvon SQLUnion » Di 7. Mai 2019, 08:57

Hallo Maik_2019,

da hätte ich gleich folgende Fragen an Dich:
- Welche Version von MySQL?
- Wie sieht denn dein bisheriges SQL-Statement aus?

Du könntest in MySQL mit LEFT/RIGHT oder Substring arbeiten.

Gruß,
SQLUnion
SQLUnion
 
Beiträge: 193
Registriert: Fr 1. Nov 2013, 15:54

Re: Zählen, wie oft ein String in einer Spalte vorkommt

Beitragvon Maik_2019 » Sa 11. Mai 2019, 10:08

Hi !
Danke für die Antwort, die ich aus Krankheitsgründen erste heute lesen konnte. Sorry.
Ich benutze die Version 5.1.37 auf dem lokalen Rechner, an dem ich programmiere.

Zur Zeit habe ich kein wirkliches SQL Statement.


Maik
Maik_2019
 
Beiträge: 3
Registriert: Mo 6. Mai 2019, 17:56

Re: Zählen, wie oft ein String in einer Spalte vorkommt

Beitragvon Maik_2019 » Sa 11. Mai 2019, 10:11

Zur Zeit selektiere ich alle Einträge, in denen z.B. das Jahr 2008 vorkommt.
All diese Treffer durchsuche ich mit einer php-Routine nach dem entsprechenden Jahr.

Wenn ich nun insgesamt 8000 Datenbankeinträge auf diese Weise durchsuche und das für die Jahre 1992 bis 2019 dauert das eine halbe Ewigkeit. Daher hoffe ich, dass mySQL eine entsprechende SCHNELLERE Routine zur Verfügung stellt...
Maik_2019
 
Beiträge: 3
Registriert: Mo 6. Mai 2019, 17:56

Re: Zählen, wie oft ein String in einer Spalte vorkommt

Beitragvon SQLUnion » Sa 18. Mai 2019, 17:54

Um deine Suche zu beschleunigen, müsste man sich dein SQL-Statement anschauen.
Ich verstehe das gerade so, dass Du immer die 8000 Einträge durchgehst (Schleifenproblem) und dann das Richtige suchst.

Mit SQL kannst Du die Abfrage in einer Datenbank machen. Derzeit führt deine Applikation die Suche über deine Routine aus.
Eine Datenbank ist viel schneller, als deine Routine. Deine Applikation sollte nur das Resultset eine Datenbankabfrage zurückgeben.

Aber dein Beispiel spricht auch nicht für eine normalisierte Datenbanktabelle (3. Normalform). Dein Beispiel:
Reihe1: fotos-> "Nordsee 2008, Münster 2009, Ostsee 2008, Rügen 2011"

Man könnte mit Regular Expression eine Lösung bauen, aber ein sauberes Datenbankmodell wäre um Längen besser.

Gruß,
SQLUnion
SQLUnion
 
Beiträge: 193
Registriert: Fr 1. Nov 2013, 15:54


Zurück zu SQL Grundlagen

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: