Frage an die Datenbank-Spezialisten

Begonnen von admin, 18 April 2022, 20:20:24

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

admin

Mal eine Frage an die SQL-Profis unter Euch:

Ich habe in einer Datenbank eine Tabelle mit ganz vielen Spalten.
Jetzt möchte ich in der Spalte "cust_land" (für: "custom Land"-Settings im User-Profil) alle Begriffe (z.B. "Alemanha") suchen und mit einem Anderen ersetzen (zb. "Deutschland").
Wie würde denn der korrekte Begriff dafür lauten?

Mein SQL ist leider echt nicht so gut. Habs mit folgendem Befehl probiert:

SELECT themes REPLACE(cust_land, 'Alemanha', 'Deutschland')

Leider funzt das nicht > Fehlermeldung. Was mache ich falsch?

Danke und viele Grüße
Karl
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

admin

Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

kahlo

Hi Karl,

Ich kenne deine DB nicht, deshalb ohne Gewähr. MySQL würde sowas schlucken:

UPDATE themes SET cust_land = REPLACE(cust_land, "Alemanha", "Deutschland")

Viel Glück,
Kahlo.

Hansdampf

Update themes Set cust_land = 'Deutschland' where cust_land = 'Alemanha'

Karl

Dankeschön :)
Werde ich morgen früh gleich mal ausprobieren sobald ich wieder online bin
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen.

admin

Zitat von: Hansdampf am 18 April 2022, 21:07:42Update themes Set cust_land = 'Deutschland' where cust_land = 'Alemanha'
Hat leider nicht geklappt. Folgende Meldung erscheint: "#1054 - Unbekanntes Tabellenfeld 'cust_land' in field list".

Ich hatte vorher von der Tabelle ein SQL-Backup gezogen. Der Aufbau ist wie folgt.

CREATE TABLE `themes` (
  `id_member` mediumint(8 ) NOT NULL DEFAULT '0',
  `id_theme` tinyint(4) UNSIGNED NOT NULL DEFAULT '1',
  `variable` varchar(255) NOT NULL DEFAULT '',
  `value` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

--
-- Daten für Tabelle `themes`
--

INSERT INTO `themes` (`id_member`, `id_theme`, `variable`, `value`) VALUES

(2, 1, 'cust_gender', '{gender_1}'),
(2, 1, 'cust_bundes', 'Hessen'),
(2, 1, 'cust_land', 'Deutschland'),
(2, 1, 'cust_ort', 'Offenbach'),
(2, 1, 'cust_plz', '63065'),
(2, 1, 'calendar_start_day', '1'),
(5, 1, 'cust_bundes', 'Bayern'),
(5, 1, 'cust_gender', '{gender_1}'),
(5, 1, 'cust_land', 'Deutschland'),
(5, 1, 'cust_ort', 'Herzogenaurach'),
(11, 1, 'cust_bundes', 'Hessen'),
(11, 1, 'cust_gender', '{gender_1}'),
(11, 1, 'cust_land', 'Deutschland'),
(11, 1, 'cust_ort', 'Münster'),

Die in fett markierten Datensätze möchte ich gern auslesen / ersetzen.

Viele Grüße, Karl
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

Rütz

Ohne irgendeine Ahunug zu haben... ;D  :-*
Könnte es sein, dass auch in dem Befehl 'cust_land' statt cust_land stehen muss?
Also:
Update themes Set 'cust_land' = 'Deutschland' where 'cust_land' = 'Alemanha'
I never dared to be radical when young.
For fear it would make me conservative when old. (Robert Frost)

admin

Wenn ich noch ne Spur an fundiertem Wissen in diesem Bereich hätte, würde ich dir entweder widersprechen oder dir Recht geben ;D Ich glaube die Problematik hier liegt darin, dass die Daten(-felder) ich sags mal "plump" in einer Reihe liegen (Kommasepariert) und nicht einzelne Spalten sind ...
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

admin

Die Datenbank gibt da eine eindeutige Antwort:

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ''cust_land' = 'Deutschland' where 'cust_land' = 'Alemanha'' in Zeile 1
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

Rütz

Schade. Wäre auch zu einfach gewesen...
I never dared to be radical when young.
For fear it would make me conservative when old. (Robert Frost)

admin

Mal abwarten was die Profis sagen ...

By the way - ich krieg seit der Umstellung auf die neue Forenversion unter Windows kleinen PopUps die mir sagen dass ich eine neue Nachricht im Forum erhalten habe ... nice!
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

kahlo

Und den hast du dich nicht getraut? Genau so und nicht mit irgendwelchen anderen Apostrophen?

UPDATE themes SET cust_land = REPLACE(cust_land, "Alemanha", "Deutschland")

admin

#11
Ja na klar hab ich das schon ausprobiert - hat leider nichts gebracht.
Frisch aus der PHPmyadmin-Bäckerei folgende Meldung:

#1054 - Unbekanntes Tabellenfeld 'cust_land' in field list
hab auch schon weiter herum gespielt...

UPDATE themes SET variable = REPLACE('cust_land', 'Alemanha', 'Deutschland')

Wenn ich diesen Befehl per "Abfrage simulieren" starte, dann erhalte ich eine positive Rückmeldung (keinen Fehler!), die besagt:  " Gefundene Zeilen: 21027"

Ich weiß aber dass der Datensatz mit "Alemanha" nur in einer einzigen Zeile vorkommt. Deswegen weiß ich jetzt nicht WAS der o.g. Befehl machen würde. Deswegen lasse ich das lieber mal.
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen. Und hier findet Ihr meine Amazon Wunschliste.

Karl

Nachtrag:

Ich hab es anders gelöst -> Export der Tabelle in eine SQL-Datei. Editieren der Datei mit Notepad. Danach Einspielen der Datei
Support this Board: Wer das Forum unterstützen möchte, kann das gerne per PAYPAL machen.

Hauptmenü

Anleitungen & Bücher Baureihe Specials Startseite Vergleichsliste

Presse & Wissen

Bauzeiten & Stückzahlen Historisches Liste der BMW Modelle Presseberichte Prospekte & Plakate

Foren & Literatur

Bildergalerie Bildtafel-Suche Forum: Boxerforum Handbücher Servicedaten

Allgemeine Infos

Bildtafelsuche Glossar Impressum Kontakt Sitemap

Tipps & Service

Dienstleister Händler Märkte & Museen Tipps Verschleißteile & Werkzeuge