Antworten auf deine Fragen:
Neues Thema erstellen

Erledigt - MYSQL Satz vergleichen

BlackHawk3

Aktives Mitglied

Guten Tag,
ich komme bei einem SQL Problem gerade nicht weiter.
Ich muss einen Parameter einer URL mit einem Datenbankeintrag vergleichen.
Aus der URI hole ich mir ohne Probleme den Satz in der Form: "bla-bla-bla".
Anschließend entferne ich die "-" und habe "bla bla bla". Damit will ich nun in der Datenbank suchen gehen nach "Bla Bla - Bla" (Von wegen WHERE "Bla Bla -Bla" = "bla bla bla").
Dazu muss aber im Query erst das Minus aus dem DB-String entfernt werden.

Code:
$url = rawurldecode(trim( $_SERVER['REQUEST_URI'], "/" ));
$url = explode("/",$url);

$string = str_replace("-", " ", $url[2]);

//SQL
SELECT *
FROM `MEINETABELLE`
WHERE REPLACE (DB-FELD,'-','') LIKE 'bla bla bla'
Das klappt aber nicht.
 
Zuletzt bearbeitet:

BlackHawk3

Aktives Mitglied

Die Frage dazu ist, wie ich quasi mit meinem Satz "bla bla bla" auf die Daten des Datensatzes von "Bla Bla -Bla" zugreifen kann.

Führe ich den SQL-Befehl aus kommt auch keine Fehlermeldung, sondern ein leeres Resultat.

EDIT:
Aber auch nur weil durch dem wegfallenden Minus 2 Leerzeichen nebeneinander enstehen.
Problem gelöst. Danke Engel.
 

lachender_engel

Aktives Mitglied

Aha, das ist doch mal klarer.
Wenn Dein Datensatz "Bla Bla -Bla" heißt und Du das Zeichen "-" durch "" ersetzt wird daraus "Bla Bla Bla". Nur ist "Bla Bla Bla" nicht gleich "bla bla bla". Denn MySQL prüft case sensitiv.
Lösen kannst Du das durch LOWER und UPPER. Will heißen
Code:
SELECT *
FROM `MEINETABELLE`
WHERE LOWER(REPLACE (DB-FELD,'-','')) LIKE 'bla bla bla'
 

rafoldi

Aktives Mitglied

Naja ich würde mich noch um die Groß Kleinschreibung kümmern. Sollte mit upper / lower funktionieren.
Nach Deinem Beispiel oben sind die Buchstaben unterschiedlich.
 

rafoldi

Aktives Mitglied

Soweit ich weis sind alle String Vergleiche auf DB Ebene Case Sensitiv. Ein großer Buchstabe hat einen anderen ASCII Code als ein kleiner.
 

BlackHawk3

Aktives Mitglied

Aber noch eine andere Frage. Kann ich mit dem Query auch irgendwie alle Sonderzeichen ersetzen? REGEX sind in PHP schon böhmische Dörfer für mich, aber ich glaube das REPLACE in Mysql funktioniert damit auch gar nicht oder?
 

BlackHawk3

Aktives Mitglied

Soweit ich weis sind alle String Vergleiche auf DB Ebene Case Sensitiv. Ein großer Buchstabe hat einen anderen ASCII Code als ein kleiner.

Ja, macht auch Sinn soweit, in phpmyadmin im SQL-Eingabefenster hat es ohne Berücksichtigung der Groß- und Kleinschreibung geklappt. Ein LOWER bzw. UPPER kann aber nicht schaden, um auf Nummer sicher zu gehen.:nick:
 

stefan_2

Noch nicht viel geschrieben

Soweit ich weis sind alle String Vergleiche auf DB Ebene Case Sensitiv. Ein großer Buchstabe hat einen anderen ASCII Code als ein kleiner.

Ja, aber nur bei dem Operator "="! der operator "LIKE" ist wirklich nur in Verbindung mit "BINARY" case sensitiv! Sonst wäre es ja kein "LIKE" :)

Mein Wissen ist da zwar schon etwas veraltet, aber ich glaube nicht, dass sich da inzwischen was verändert hat. Das wäre fatal... Und deshalb ist "LIKE" auch recht lahm...

Gruß
Stefan
 

rafoldi

Aktives Mitglied

Ja, aber nur bei dem Operator "="! der operator "LIKE" ist wirklich nur in Verbindung mit "BINARY" case sensitiv! Sonst wäre es ja kein "LIKE" :)

Nö, like nimmt einen Stringteil und versucht einen Treffer zulanden, hier kann mit einem Wildcard gearbeitet werden.
Das "=" oder "=!" sagt aus das beide Seiten identisch sein müssen um einen Treffer zu landen, hir gibt es kein Wildcard.
Ein Wildcard ist beispielsweise %
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben