Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Dezember

SELFHTML Forumsarchiv
Text per SQL in viele Datenbankfelder zusätzlich einfügen

Informationsseite
  1. Seite (DATENBANK) Text per SQL in viele Datenbankfelder zusätzlich einfügen von Stefan, 31. 12. 2006, 20:11
nach unten

Text per SQL in viele Datenbankfelder zusätzlich einfügen

Die folgende Nachricht zum Thema stammt von: Stefan, 31. 12. 2006, 20:11

Hallo Leute,

ich hoffe, daß ich mal hier auf kompetente Hilfe stosse.

Ich habe in einer mysql-Datenbank eine Tabelle mit Namen products
In diser Tabelle ist ein Feld mit Namen products_model (da ist die Artikelnummer drin gespeichert). Diese Artikelnummer müssen nun erweitert werden. Und zwar müssen alle Artikel, welche zehnstellig sind eine führende 0 erhalten, und alle Artikel, die sechsstellig sind müssen am Ende um 0000 erweitert werden und am Anfang um 0. Welchen Befehl kann ich dafür in phpmyadmin verwenden? Wie ich die zehn- und sechsstelligen Felder anzeigen lassen kann weiß ich bereits:

SELECT * FROM products WHERE products_model LIKE '__________' (10-stellig) bzw.
SELECT * FROM products WHERE products_model LIKE '______' (6-stellig)

Wie bekomme ich aber nun die zusätzlichen Nullen in das jeweilige Feld?
Wäre schön, wenn mir jemand helfen könnte.

nach obennach unten

Mit SQL in einer Spalte viele Werte ändern

Die folgende Nachricht zum Thema stammt von: Vinzenz Mai, 31. 12. 2006, 20:33

Hallo Stefan,

»» Ich habe in einer mysql-Datenbank eine Tabelle mit Namen products
»» In diser Tabelle ist ein Feld mit Namen products_model (da ist die Artikelnummer drin gespeichert).

welchen Datentyp besitzt dieses Feld? CHAR, VARCHAR oder ein Zahlentyp?

»» Diese Artikelnummer müssen nun erweitert werden. Und zwar müssen alle Artikel, welche zehnstellig sind eine führende 0 erhalten, und alle Artikel, die sechsstellig sind müssen am Ende um 0000 erweitert werden und am Anfang um 0.


»» Wie ich die zehn- und sechsstelligen Felder anzeigen lassen kann weiß ich bereits:
»» SELECT * FROM products WHERE products_model LIKE '__________' (10-stellig) bzw.

Unschön, MySQL besitzt so schöne Stringfunktionen, z.B:
SELECT
    products_model    -- nicht benötigte Felder weglassen
                      -- SELECT * ist böse[tm]
FROM products
WHERE CHAR_LENGTH = 10


Wenn Du nun diese Datensätze ändern möchtest, so verwendest Du die UPDATE-Anweisung:

UPDATE
    products                                      -- Welche Tabelle soll geändert werden
SET products_model = CONCAT('0', products_model)  -- Führende Null hinzufügen
WHERE CHAR_LENGTH = 10                            -- bei zehnstelligen Produktnummern


Das Statement für die sechsstelligen Nummern solltest Du nun selbst hinbekommen. Eine Frage noch: Die sechsstelligen Nummern werden durch das Anhängen von vier Nullen ja zehnstellig. Bekommen diese dann noch eine führende Null oder bleiben die zehnstellig?


Freundliche Grüße

Vinzenz

nach obennach unten

Mit SQL in einer Spalte viele Werte ändern

Die folgende Nachricht zum Thema stammt von: Stefan, 01. 01. 2007, 21:27

»» welchen Datentyp besitzt dieses Feld? CHAR, VARCHAR oder ein Zahlentyp?

VARCHAR


»» Unschön, MySQL besitzt so schöne Stringfunktionen, z.B:
»» SELECT
»»     products_model    -- nicht benötigte Felder weglassen
»»                       -- SELECT * ist böse[tm]
»» FROM products
»» WHERE CHAR_LENGTH = 10

»»
»» Wenn Du nun diese Datensätze ändern möchtest, so verwendest Du die UPDATE-Anweisung:
»»
»» UPDATE
»»     products                                      -- Welche Tabelle soll geändert werden
»» SET products_model = CONCAT('0', products_model)  -- Führende Null hinzufügen
»» WHERE CHAR_LENGTH = 10                            -- bei zehnstelligen Produktnummern

»»
»» Das Statement für die sechsstelligen Nummern solltest Du nun selbst hinbekommen. Eine Frage noch: Die sechsstelligen Nummern werden durch das Anhängen von vier Nullen ja zehnstellig. Bekommen diese dann noch eine führende Null oder bleiben die zehnstellig?

Ja, diese bekamen auch noch die führende Null.
Dank Deiner Hilfe habe ich es innerhalb von 2 Minuten hinbekommen. Vielen lieben Dank.
Dass das mit CONCAT geht habe ich nirgends gefunden, obwohl ich wie ein blöder gesucht habe.

Hach, ich könnte vor Freude in die Luft hüpfen, ich hb mich schon 3000 Artikel per Hand ändern sehen.

Vielleicht kannst Du mir auch noch bei einem anderen Problem helfen:
Wenn ich per phpmyadmin einen export mache, dann hängt er mir bei einigen Feldern ohne irgendeinen erkennbaren Grund wohl einen Zeilenumbruch an. Beziehungsweise bei einem Feld. In diesem Feld ist der Name der Bilddatei gespeichert. Dieses ist ein VARCHAR(64) Feld.

So sieht ein richtig exportiertes Feld aus:
"3";;"1";"1";"620491";"0";"3_0.jpg";"29.9080";"11.00";"0000-00-00 00:00:00";"2006-12-16 19:25:50";NULL;"0.00";"1";"1";"product_info_v1.html";"product_options_dropdown.html";"0";"15";"0";"1";"1";"0.5000";"0";"0";"0";"0";"0";"0"

Und so ein Falsches:
"5993";;"0";"2";"20000241100";"0";"20000241100.jpg
";"34.5271";"11.00";"0000-00-00 00:00:00";"2006-12-31 21:20:43";NULL;"0.00";"1";"1";"product_info_v1.html";"product_options_dropdown.html";"0";"0";"0";"0";"0";"0.0000";"0";"0";"0";"0";"0";"0"


Hinter dem .jpg bricht er plötzlich bei der Export-Datei in eine neue Zeile um. Weißt Du vielleicht auch, woran das liegen könnte?

Bis hierhin nochmals vielen Dank,
Stefan

nach obennach unten

Mit SQL in einer Spalte viele Werte ändern

Die folgende Nachricht zum Thema stammt von: dedlfix, 01. 01. 2007, 23:24

echo $begrüßung;

»» Wenn ich per phpmyadmin einen export mache, dann hängt er mir bei einigen Feldern ohne irgendeinen erkennbaren Grund wohl einen Zeilenumbruch an.

Du solltest das genauer prüfen. Notfalls mit einem Hexeditor (z.B. im UltaEdit). Oftmals sind es nur die Editoren, die bei zu langen Zeilen einen Umbruch einfügen. Dieses Verhalten lässt sich jedoch oft umschalten.


echo "$verabschiedung $name";

nach obennach unten

Mit SQL in einer Spalte viele Werte ändern

Die folgende Nachricht zum Thema stammt von: Stefan, 02. 01. 2007, 05:35

»» Du solltest das genauer prüfen. Notfalls mit einem Hexeditor (z.B. im UltaEdit). Oftmals sind es nur die Editoren, die bei zu langen Zeilen einen Umbruch einfügen. Dieses Verhalten lässt sich jedoch oft umschalten.

Hallo,

danke für den Vorschlag, aber das ist es nicht. Bereits mit mehreren Programmen getestet.

Hab nochmal den Export etwas verändert. Es werden ohne Ende Trennzeichen gesetzt. Wie kann denn so etwas passieren?

Stefan

nach obennach unten

Mit SQL in einer Spalte viele Werte ändern

Die folgende Nachricht zum Thema stammt von: dedlfix, 02. 01. 2007, 09:56

echo $begrüßung;

»» »» Du solltest das genauer prüfen. Notfalls mit einem Hexeditor (z.B. im UltaEdit). Oftmals sind es nur die Editoren, die bei zu langen Zeilen einen Umbruch einfügen. Dieses Verhalten lässt sich jedoch oft umschalten.
»» danke für den Vorschlag, aber das ist es nicht. Bereits mit mehreren Programmen getestet.
»» Hab nochmal den Export etwas verändert. Es werden ohne Ende Trennzeichen gesetzt. Wie kann denn so etwas passieren?

Natürlich kann auch mal das phpMyAdmin Fehler machen, doch davon würde ich zunächst nicht ausgehen. Probier doch mal einen Export mit den Kommandozeilentools von MySQL. Ich tippe darauf, dass die Daten in der Tabelle bereits diese Whitespace-Zeichen enthalten. Du kannst auch mal eine Ausgabe SELECT feld, LENGTH(feld) FROM ... (bzw. CHAR_LENGTH()) machen, und schauen, ob die Länge mit der Anzahl der sichtbaren Zeichen übereinstimmt.


echo "$verabschiedung $name";

nach obennach unten

Mit SQL in einer Spalte viele Werte ändern

Die folgende Nachricht zum Thema stammt von: Stefan, 02. 01. 2007, 10:18

»» Natürlich kann auch mal das phpMyAdmin Fehler machen, doch davon würde ich zunächst nicht ausgehen. Probier doch mal einen Export mit den Kommandozeilentools von MySQL. Ich tippe darauf, dass die Daten in der Tabelle bereits diese Whitespace-Zeichen enthalten. Du kannst auch mal eine Ausgabe SELECT feld, LENGTH(feld) FROM ... (bzw. CHAR_LENGTH()) machen, und schauen, ob die Länge mit der Anzahl der sichtbaren Zeichen übereinstimmt.


Problem gelöst: Ich habe einfach die entsprechenden Artikel mit phpmyadmin zum Bearbeiten aufgerufen und noch einmal ohne eine Veränderung auf Speichern gedrückt.

Jetzt gehts.

Vielen Dank an alle hier für die schnelle und unklomplizierte Hilfe.

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Dezember

© 1998-2006 Seite Impressum, Software: Classic Forum