Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySQL - Daten nur teilweise löschen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 18.04.2011, 09:26

Moinsen zusammen,

Ich habe eine DB (ja, echt!) in der gut 1.000 Artikel drin stecken. Jedes hat eine Produktbeschreibung. Am Ende jeder Produktbeschreibung steht ein Satz, den ich überall raus haben will.
Am anfang steht aber immer jeweils etwas anderes.

Wie bringe ich mySQL dazu, mir nur diesen jeweils gleichen String am Ende zu löschen?

Code: Alles auswählen

mysql>SELECT * FROM produktattribute WHERE produktbeschreibung LIKE "%hier_der_zu_tilgende_string";
Nur wie bringe ich es fertig, nur die letzten...sagen wir mal: 50 Zeichen zu löschen und nicht die ganze Produktbeschreibung? :roll:

Anzeige von ABAKUS

von Anzeige von ABAKUS »





Erfolgreiche und optimale Nutzung mit Magento Shopsystemen! Nutzen Sie unsere jahrelange Erfahrung mit Magento Shopsystemen und lassen Sie sich beraten!


Lesen Sie die wichtigsten Magento-Optimierungsmaßnahmen oder kontaktieren Sie uns direkt unter: 0511 / 300325-0


DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 18.04.2011, 09:31

Mit nem Update:

Code: Alles auswählen

update produktattribute set produktbeschreibung = substr(produktbeschreibung,1,length(produktbeschreibung)-50) where produktbeschreibung like '%hier_der_t_string'
(ungetestet)

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 18.04.2011, 10:10

Ebenfalls ungetestet:

Code: Alles auswählen

UPDATE produktattribute SET produktbeschreibung=REPLACE(produktbeschreibung, 'hier_der_zu_tilgende_string', 'neuer_string_evtl_leer')

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 18.04.2011, 10:45

,1,length
Interessant. Warum ist da ne 1?
Ich finde nirgends ne Dokumentation, wo dieses Attribut erwähnt wird und was man damit alles kaputtmachen kann.

DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 18.04.2011, 10:57

catcat hat geschrieben:
,1,length
Interessant. Warum ist da ne 1?
Ich finde nirgends ne Dokumentation, wo dieses Attribut erwähnt wird und was man damit alles kaputtmachen kann.
1 bedeutet, dass er den Substring ab Position 1 nimmt und der zweite Parameter ist die Länge:
https://dev.mysql.com/doc/refman/5.0/en ... ion_substr

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 18.04.2011, 11:16

sagen es wir mal in Deutsch :-) DanielS "entfernt" nicht direkt den hinteren Teil, sondern liest den vorderen Teil aus (Substring) und überschreibt dann alles mit dem zuvor ermittelten vorderen Teil. ;-)

DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 18.04.2011, 11:34

Synonym hat geschrieben:sagen es wir mal in Deutsch :-) DanielS "entfernt" nicht direkt den hinteren Teil, sondern liest den vorderen Teil aus (Substring) und überschreibt dann alles mit dem zuvor ermittelten vorderen Teil. ;-)
So is et.
Wobei ich die Replace-Lösung sogar interessanter finde ;)

catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 18.04.2011, 16:14

Genial. Ich hab eben ne Test-DB angelegt, Text reingeworfen, teilweise mit html drinne und das dann nach Methode DanielS gemacht-->geht^^ 8) Coole Sache. DANKE! Hat mir ne Menge Arbeit erspart.
So weit gehen meine mysql-Kenntnisse einfach nicht. Ich habs mal für die HK-Prüfung teilweise gelernt und gleich nach der Prüfung vergessen. Das war vor zig Jahren.

catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 21.04.2011, 14:10

So. Nu hab ich noch ne Frage^^

Gibt es ne Möglichkeit 2 DBs miteinander zu vergleichen, daß man sofort sieht, wo eine Änderung ist?
Für html, php, etc. gibts ja z.B. https://winmerge.org/ , wo man gut sieht, wo etwas geändert ist.

Ich habe hier 1 Original-DB und 1 DB mit über 700MB in der irgendwo 1-2 Zeichen fehlen UND DAS MACHT MICH WAHNSINNIG :bad-words:

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 21.04.2011, 14:49

Also für Daten selbst kenne ich nur ein kostenpflichtiges:
https://nobhillsoft.com/NHDBCompare.aspx

Die anderen wo ich kenne, vergleichen nur die Struktur, keine Daten.

Ich würde selbst aber wohl winmerge nehmen und beide Exports vergleichen. Bei 2x 700MB dauert das zwar, aber es geht. Hab das schon mit 1 GB-Exports gemacht :-)

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 21.04.2011, 14:59

Eventuell auch das... gibt da eine 30-Tage-Version, kenne ich aber auch nicht ;-)
https://www.devart.com/dbforge/mysql/datacompare/

catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 21.04.2011, 19:10

Naja...80$ schaff ich grade noch ran. Gelobt sei der Wechselkurs 8)

Dieses Magento geht mir so ganz langsam tierisch auf die Nüsse.

Chuck Norris würde den Server und den shop nur scharf ansehen und die würden schneller laufen als alle google-Rechenzentren zusammen^^

mgutt
PostRank 10
PostRank 10
Beiträge: 3206
Registriert: 08.03.2005, 13:13

Beitrag von mgutt » 22.04.2011, 10:54

Warum machst Du Dir nicht gerade ein passendes PHP Script? Kannst ja in ein bestehendes Script reinschreiben, wenn Du Dir ein komplettes Verbinden mit der DB sparen willst und es nur ausführen, wenn Du z.B. den Parameter "XYZ" übergibst. Also z.B. so:
deinedomain.de/index.php?XYZ

und im Script (sicherer wäre allerdings mit einer $_COOKIE Variablen zu arbeiten, die nur Du gesetzt bekommst)

Code: Alles auswählen

if (isset($_GET['XYZ'])) {
 // mach was, was nur der admin will ;)
}
Und da packst Du dann eine MySQL Abfrage rein:

Code: Alles auswählen

SELECT t1.text AS text1, t2.text AS text2 FROM &#40;table1 t1, table2 t2&#41; WHERE t1.id = t2.id AND t1.text <> t2.text
Und das schmeißt Du dann eben per while-Schleife und echo aus. z.B. in einem HTML table mit zwei Spalten zum schnellen Sichtvergleich.

Oder willst Du eine Diff-Script, dass die Unterschiede hervorhebt bzw. durchstreicht?

Gruß
Ich kaufe Dein Forum!
Kontaktdaten

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 23.04.2011, 13:55

Sonst dump doch die Daten und vergleich die Dumps? ("winmerge")
https://everflux.de/ blogging about life, programming, seo and the net

catcat
PostRank 10
PostRank 10
Beiträge: 10292
Registriert: 02.08.2006, 13:21
Wohnort: Litauen

Beitrag von catcat » 23.04.2011, 14:10

Klar. Ich werde mir über 210.000 Zeilen Kauderwelsch angucken 0X
Ich wollte den shop eigentlich schon noch vor Weihnachten starten.

Ich hab das jetzt mal mit diesem dbforge-tool von devart durchrattern lassen und die überschüssigen texte gelöscht. Gott und devart sei gedankt^^

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag