MySQL: SELECT-Abfrage bei mehreren Werten in einer Spalte

basti1012

Erfahrenes Mitglied
Jetzt kannst du aber noch alles ändern und anpassen.
Deswegen gleich richtig machen.
Yaslaw ist dafür der richtige Ansprechpartner.
An dieser Stelle: kennt Ihr hier einen guten Web- oder Buchtipp,
Was in richtig HTML, CSS, Javascript geht, würde ich HTML-Seminar vorschlagen. Videokurs HTML + CSS auf DVD bestellen
Die haben ein Video Kurs und Online auch viel Input zum Lernen.
Einen Anfänger Kurs für PHP gibt es da auch.
PHP lernen für Anfänger mit Übungen + Videos - PHP-Kurs.com
Da lernst du auch einen Grundkurs wie man mit Datenbank arbeitet.
Willst du aber mehr lernen (z. B. REGEX in Datenbanken usw..), musst du mal weiter rumfragen, ob es dafür ein Buch oder sonst was zugibt, was dir empfohlen wird.
 

Zvoni

Erfahrenes Mitglied
Hallo Yaslaw,
ich verstehe, wie Du da meinst. Was mache ich aber dann, wenn z.B. der Veranstaltungsname ebenfalls aus zwei oder mehr Wörtern bestehen muss, z.B. "Karl Otto Gedächtnisturnier" oder ähnlich? Hier soll man ja hinsichtlich des Veranstaltungsnamens die Möglichkeit haben, nur nach "Karl" oder "Otto" zu suchen...???
Ergänzend zu allem was die anderen hier gesagt haben:
Mach dich vertraut mit der SQL-Sprache (respektive dem Dialekt, welche deine Datenbank benutzt).
Daran wirst du definitiv nicht vorbei kommen!
In deinem konkreten Fall (Suchen nach "Karl", "Otto" oder "Gedächtnisturnier") ist als erster ( ! ) Ansatz der LIKE-Operator zu nennen (wie auch schon oben erwähnt).

Was dir auch klar sein sollte: Die besten Quellen online sind zu 99% in englischer Sprache. Du solltest also keine Angst davor haben, entsprechend auch in englisch zu recherchieren.
 

Yaslaw

n/a
Moderator
Als erstes musst du die Tabellen erstellen und lernen sie zu verknüpfen. Stichworte INNER JOIN und LEFT JOIN.
Dann kannst du das mit dem LIKE versuchen.
REGEX wie weiter oben geschrieben wird brauchst du nicht.
Ich habe keine Buch- oder Tutorialempfehlung, da mein letztes Buch zu diesem Thema etwa 15 Jahre alt ist und ich keine mehr brauche.
 

Tuppie

Mitglied
Als erstes musst du die Tabellen erstellen und lernen sie zu verknüpfen. Stichworte INNER JOIN und LEFT JOIN.
Dann kannst du das mit dem LIKE versuchen.
REGEX wie weiter oben geschrieben wird brauchst du nicht.
Ich habe keine Buch- oder Tutorialempfehlung, da mein letztes Buch zu diesem Thema etwa 15 Jahre alt ist und ich keine mehr brauche.
Okay, dann bin ich im Verständnis einen wichtigen Schritt weiter. Heißt: in einer Spalte darf nur ein Wort stehen?
Bei Namen ja relativ leicht, dann eben seperate Spalten für Vor- und Nachname, aber bei meinem Beispiel von weiter oben ("Karl Otto Gedächtnisturnier") bin ich dann gezwungen, den Namen in verschiedene Spalten (hier drei Spalten) zu teilen, richtig? Soweit so okay, wenn man dann trotzdem nach "Karl Otto Gedächtnisturnier" suchen kann und einen entsprechenden Treffer bekommt. Klappt das dennoch?
Wäre zu blöd, wenn man einem Nutzer sagen müsste, dass er z.B. bitte nur nach "Karl" sucht.
 

Sprint

Erfahrenes Mitglied
An dieser Stelle: kennt Ihr hier einen guten Web- oder Buchtipp, man dem man sich diesbezüglich ordentlich einarbeiten kann?
Einen expliziten Tip habe ich nicht, aber die "für Dummies" Reihe ist für Einsteiger immer recht gut geeignet. Und wenn es wieder geht, würde ich mal in einen großen Buchladen gehen und mir verschiedene Bücher zu dem Thema anschauen. Oder du gehst den harten Weg und schickst die Bücher so lange hin und her, bis du eines gefunden hast, mit dem du gut zurecht kommst.
 

Yaslaw

n/a
Moderator
Nein Tuppie. Du kannst den Namen auch in einem Feld lassen. Wie bereits mehrfach erwähnt ist LIKE die Lösung dazu.
Gehört zum Einmaleins von SQL. Findest du in jedem SQL-Buch ganz weit vorne.

Sorry, aber ich schreibe dir kein weiteres Buch oder Tutorial - da gibt es ganz viele. Und mit dem Begriff MySQL + LIKE findest du auch eim WWW ganz schnell Erklärungen.
Let Me Google That

Ansonsten noch ein Link zum Eintrag über LIKE im besten Nachschlagewerk für MySQL.
MySQL :: MySQL 8.0 Reference Manual :: 12.8.1 String Comparison Functions and Operators
 

Tuppie

Mitglied
Okay, ganz lieben DANK für die vielen guten Anregungen und Hilfen. Ich lasse mir dass jetzt mal alles durch den Kopf gehen, überlege mir eine sinnvolle Struktur meiner (neuen) Datenbank und stelle die Euch dann mal vor, bevor ich zig Datensätze wieder umsonst anlege ;-)
 

Yaslaw

n/a
Moderator
Gutes vorgehen. Wir werfen gerne nochmal ein Blick auf deine Umsetzung. Man kann am Anfang einer DB leider schon viel verbocken, was einem erst viel später auffällt und dann ist es meistens zu spät.
 

Tuppie

Mitglied
Eine prinzipielle Frage habe ich noch, bevor ich mich an die Denkarbeit mache ;-)
Wenn ich z.B. nach Teilnehmern abfrage, also wissen möchte, bei welchen Veranstaltungen Teilnehmer XY teilgenommen hat, dann möchte ich, dass die als Abfrageresultat ausgegeben Veranstaltungen direkt mit einer htm auf meiner Seite verlinkt sind, so dass man per Mausklick direkt auf die entsprechende Veranstaltungsseite geführt wird.
Geht so etwas? Müsste ich dann die Veranstaltungslinks in einer seperaten Tabelle anlegen?
Lieben Gruß