hallo.
wie kann ich aus einer großen mysql tabelle alle kommas automatisch entfernen?
gibts da einen befehl?
per hand währe es zuviel arbeit.
vielen dank schon mal
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
Ist mit REPLACE(str,from_str,to_str), siehe z.B. http://dev.mysql.com/doc/refman/5.1/de/string-functions.html möglich...
Gruß
Borlander
super danke.
habe aber festgestellt dass mein problem auch einfach so zu lösen war:
LIKE (%wort,%)
schön betriebsblind gewesen.
naja replace gut zu wissen
mfg
Dir ist hoffentlich klar, daß diese Operation extrem teuer ist. Führt zu einem FullTableScan. Falls es um eine Suchfunktion geht solltest Du unbedingt mal die Nutzung von FULLTEXT Indices prüfen...
Gruß
Borlander
hallo..
nein war mir nicht klar, habe erst vor 1 woche mit mysql angefangen..
es ist halt ein SELECT * FROM bilder WHERE jahr LIKE 1998 etc..
wo bilder mit bestimmten eigenschaften aus einem verzeichnis geladen werden.
die tabelle hat ca. 900 zeilen, also ich denke mal noch recht wenig.
ist es nicht egal ob eine tabelle oder ein index (ist doch die gleiche menge an text) gescannt wird? dann könnt ich doch SELECT spalte FROM machen um fulltablescan zu umgehen, oder nicht?
das mit den indexes ist mir im moment noch zu hoch.
wie teuer? für die performance oder finanziell?
die mysql doku ist schwer verständlich wenn man so gar keine ahnung hat was da passiert.
aber danke für den hinweis
In diesem Fall = verwenden.
Interessant ist hier ggf. auch noch BETWEEN und IN().
LIKE ist nur für die Suche mit Platzhaltern sinnvoll. Platzhalter als Präfix sind zu vermeiden weil vorhandene Indices in diesem Fall nicht genutzt werden können...
ist es nicht egal ob eine tabelle oder ein index (ist doch die gleiche menge an text) gescannt wird?
Nein! Ein Index enthält nur Verweise auf die Datensätze. Die Verweise werden dann anhand des Sortierkriterium z.B. in einer Baumstruktur gespeichert und erlauben so einen deutlich schnelles Anspringen von bestimmten Datensätzen.
Beispiel: Personendatenbank mit 1 Mio Einträgen. Wenn man dort ohne Index einen Herrn "Hansa Park" sucht, dann muss man dazu jeden Datensatz einmal prüfen. Mit einem gemeinsamen Index für Vor- und Nachnamen reichen dagegen schon 10 (nur zur Verdeutlichung der Größenordnung, die genaue Anzahl ist abhängig von der konkreten Implementierung) Vergleichsoperationen um die gesuchte Person zu finden. Im Idealfall passt der Index auch noch komplett in den DB-Cache und dann reicht ein Plattenzugriff um den gesuchten Datensatz zu lesen.
wie teuer? für die performance oder finanziell?
Beides. Wenn man Leistung verschenkt geht es ab einer gewissen Größenordnung auch ins Geld ;-)
Gruß
Borlander
hi..
sind platzhalter sowas: wort/ wo_t
bzw. %wort%
?
(die verwende ich auch)
mit den indexes das stelle ich mir nun so oder so ähnlich vor:
A - alex
- anna
- adelbert
B - bertram
- beate
- usw.
richtig?
präfix bedeutet quasi so in der art verwenden mit LIKE oder = oder BETWEEN ?
na dann muss ich wohl mal indices lernen.
(gemieteter webspace/festpreis, kleine seite, aber man kann ja trptzdem versuchen es besser zu machen)
danke sehr
Ja.
Wobei ich nicht weiß ob MySQL auch bei sowas wie "_Ausdruck" vielleicht vorhandene Indices nutzt. Das würde allerdings auch erst bei größeren Tabellen interessant.
? ist übrigens kein von LIKE ausgewerteter Platzhalter.
Deine Vorstellung von Indices geht in die richtige Richtung. Normalerweise ist der Baum allerdings tiefer (abhängig von der Index-Länge): z.B. B-E-tram und B-E-ate
Zum Thema Präfix siehe
http://de.wikipedia.org/wiki/Wort_(Theoretische_Informatik)#Pr.C3.A4fix
Einfach gesagt: Als Präfix bezeichnet man Zeichenketten die am Anfang eines Worts beginnen
Gruß
Borlander