MySQL, Zugriff auf Stringteile über Index ??
-
Meine Frage: Kann man in einer MySQL-Tabelle auf eine varchar() -Spalte über den Index zugreifen ?
Also zB.:
select * from tabelle where spalte[1]=b;
Meine Versuche haben das nicht bestätigt. Wenn es nicht möglich ist, gibt es eine andere Möglickeit auf Stringteile zuzugreifen ?
-
du kannst mit Hilfe von Wildcards auf Stringteile zugreifen
im allgemeinen steht % für beliebig viele Zeichen und _ für ein Zeichen
näheres dazu steht bestimmt in der MySQL-Doku
-
OK. Geht meine Variante also nicht ? ^^
könntest du mir die Syntax kurz geben, da ich gerade keinen Zugriff auf die Doku habe
.
-
MID(str,pos,len)
LEFT(str,len)
RIGHT(str,len)
Dies sind stringfunktionen von MySQL und funktionieren i.R. nicht bei anderen RDBMS.Das andere wäre LIKE und hat nichts mit MySQL zu tun sondern ist SQL-Standard.
-
SELECT * from tabelle where (MID(wetter,1))='1' ;
wäre die Syntax so richtig, wenn ich den 1. Buchstaben der Spalte "wetter" mit '1' vergleichen wollte ?
-
allerdings liefert select ein leeres Resultat zurück
-
MID(str,pos,len)
MID(wetter,1)
Fällt dir etwas auf?
-
Gaaaaaanz blöde Frage: Warum nutzt du nicht den Tipp von Linnea und versuchst es mal mit
SELECT * from tabelle where wetter LIKE '1%';Lesen der Doku ist übrigens, wie schon mehrfach drauf hingewiesen, durchaus sinnvoll. Sie ist über das Netz erreichbar unter dev.mysql.com
mfg
xXx
-
Ach ja, ein weiterer Parameter, nur ist nicht erkennbar, ob das "length" bedeuten soll oder sonst was. Es könnte auch eine optionale Parametervariablen sein, deren Kennzeichnung von vielen Leuten sicherlich nicht durchgeführt wird.
Übrigens kann ich es nicht leiden, wenn mir Fragen gestellt statt Antworten gegeben werden.
Ich habe es jetzt mit LIKE gelöst, dessen Möglichkeiten mir vorher nicht bekannt waren.
Danke für die Antworten.
-
Bluffix schrieb:
Ach ja, ein weiterer Parameter, nur ist nicht erkennbar, ob das "length" bedeuten soll oder sonst was. Es könnte auch eine optionale Parametervariablen sein, deren Kennzeichnung von vielen Leuten sicherlich nicht durchgeführt wird.
Übrigens kann ich es nicht leiden, wenn mir Fragen gestellt statt Antworten gegeben werden.
Ich habe es jetzt mit LIKE gelöst, dessen Möglichkeiten mir vorher nicht bekannt waren.
Danke für die Antworten.
Und ich kann es nicht leiden wenn man nicht in die DOKU schaut und dann auch noch herummotzt wenn ich dir einen Teil der Doku poste.
Select lieferte dir übrigens kein leeres Result zurück sondern MYSQL eine Fehlermeldung.
Da ist ein Unterschied.
Ein leeres Result bedeutet keine Daten vorhanden aber query richtig.
Da der Query nicht richtig war kommt eben eine fehlermeldung.
-
Ich habe es direkt unter SQL-Anweisungen eingegeben und es wurde ein leeres Resultat zurückgegeben, wie ich dort genau lesen konnte.
-
du hast ein leeres Result erhalten weil du die Fehlermeldung bei absetzen des querys schon nicht beachtet hast.
dein query war bereits fehlerhaft.