Mit Mysql Text bearbeiten

son gohan

Erfahrenes Mitglied
Ich habe in einer Mysql Tabelle im Feld name mehrere Wörter per Bindestrich getrennt aber ohne Leerzeichen zusammengeschrieben, so ähnlich wie, CD-Brian-Adams, jetzt würde ich gerne diese Wörter aber so bearbeiten lassen von MySQL oder falls das mit MySQL nicht geht dann vielleicht mit PHP, dass die Bindestriche automatisch durch ein Leerzeichen ersetzt. Dann sollte es später so aussehen: CD Brian Adams. Geht das, wenn ja wie?

- Dann habe ich noch ein Problem mit Mysql wofür ich keine extra Thema eröffnen will, und zwar habe ich in einer Tabelle ca. 5000 Datensätze und wen ich die immer aktualisieren will, muss ich zuerst ale Datensätze anzeigen lassen und dann auswählen und dann löschen und dann die Tabelle optimieren damit alle Datensätze endgültigt gelöscht werden und nichts doppelt vorkommt und dann per Textdatei aus der CSV Datei wieder die neu geänderten Datensätze importieren. Geht das nicht irgendwie einfacher?
 
Zur ersten Frage:
mit Replace('Test-String', '-', ' ')
sollte das klappen...

Zum zweiten:
Was willst du denn genau aktualisieren?!

Gruß
 
Hi, toll mit dem Ersetzen durch Leerzeichen hat ja prima geklappt :).

Kann man eigentlich auch erzeugen dass alle Wörter mit einen großen Anfangsbuchstaben anfangen, zur Zeit sind die nämlich alle klein geschrieben, so cd brian adams, sollte aber so aussehen Cd Brian Adams, wenn das geht habe ich mir wieder eine Menge Arbeit gespart.

- Zum zweiten Problem sieht das so aus dass ich alle Datensätze aktuallisieren will aber nicht so aufwendig wie bisher. Ich will am besten immer alle Datensätze aufeinmal aktuallisieren. Dazu bräuchte ich ein MySQL Befehl mit dem ich alle Datensätze aus der Tabelle lösche, denn dann kann ich später einfach wieder alle Datensätze aus der CSV Datei importieren und hab es immer aktuell.
 
Hi nochmal,
also alles löschen kannst du doch ganz einfach mit delete from table, dann löscht der sämtliche Datensätze oder meinst du was anderes? Wozu willst du überhaupt den Weg mit der CSV machen? Klingt für mich etwas umständlich.
Das nur der erste Buchstabe groß geschrieben wird ist etwas schwieriger, zumindest ist mir nun keine Funktion bekannt die das direkt umsetzen würde. Du müsstest dann wohl einige Funktionen schachteln um an das Ergebnis zu kommen.
Spontan würd mir dazu einfallen das du die einzelnen Wörter aufsplittest in eine Liste oder sowas, dann jeweils die erste Position in Großbuchstaben umwandelst und am Ende wieder alles zuzsammensetzt. Mit einfachen SQL Mitteln stell ich mir das aber etwas komplexer vor. Wäre einfacher wenn du das vorher mit einem anderen Sparchmittel umsetzt und dann korrekt importierst.
Gruß
 
Ja hi, das ist ein guter Ansatz erst mal alles mit einem anderen Programm zu bearbeiten damit es groß geschrieben wird, nur kenne ich mich nicht aus.

Ich gehe auch immer noch mit einem modem online und kann mir noch keine vernünftigen Handbücher downloaden und habe auch sonst ziemlich Probleme mit dem modem, bis ich mein DSL bekomme muss ich aber so zurecht kommen.

Falls dir noch was einfällt und du Zeit findest würde ich mich natürlich freuen.
 
Hi,
also ein konkretes Code Beispiel poste ich jetzt nicht, weiß ja auch nicht mit was du das letztlich umsetzen willst. Grundsätzlich könnte das aber in etwa so aussehen:

Code:
VARIABLE ersterbuchstabe
VARIABLE zeile
VARIABLE zähler
öffne Datei x
solange zeilen in Datei x
  lese nächste zeile von datei x in zeile
  mache position 1 in zeile groß
  solange zähler < länge von zeile
    wenn ersterbuchstabe = wahr dann
      position zähler in zeile groß
    wenn position zähler in zeile= leerzeichen dann
      ersterbuchstabe = wahr
    sonst
      ersterbuchstabe  = falsch
   zähler  +1
   nächster schleifendurchgang
nächster schleifendurchgang

hoffe mal da hat sich jetzt kein Fehler eingeschlichen, müsstest du dann eben nur in der entsprechenden Syntax umsetzen.

Gruß
 
Hallo,

danke das ist ein hilfreiches Beispiel, ich werde mich mal in den nächsten Tagen in Ruhe damit beschäftigen, danke.
 
Hallo,

mit dem Befehl:
PHP:
UPDATE iektipps SET name = REPLACE (name, '-', ' ' )
konnte ich ja alle Bindestriche durch ein Leerzeichen ersetzen was auch problemlos klapte.

Jetzt wollte ich jedoch auch noch alle Anfangsbuchstaben mit Großbuchstaben haben und dazu habe ich auch ein Beispiel mit PHP im Netz gefunden:

PHP:
<?php
 $text = "Guten Morgen liebe Sorgen, seid Ihr auch schon alle da?";
 ucwords($text);
 echo $text;

 // Ausgabe: Guten Morgen Liebe Sorgen, Seid Ihr Auch Schon Alle Da?
?>

Wie kann ich jetzt aber den Befehl ucwords in eine MySQL Abfrage intigrieren um alle Datensätze dementsprechend zu ändern in Anfangsgroßbuchstaben?

Oder wie könnte man das per PHP machen, bitte bring mir das mal jemand bei :)
 
Hallo, ich habe mir gedacht wenn ich es hinbekomme alle Einträge aus der Spalte name mit einer Schleife aus der Datenbank auszugeben und dann mit dem php Befehl so bearbeite das es allen einen großen Buchstaben voranstellt und dann wieder zurück in die Datenbank schikcen die geänderten Daten, aber da ich nicht weis wie hab ich wohl Pech gehabt. :)
 

Neue Beiträge

Zurück