Announcement

Collapse
No announcement yet.

SQL Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Abfrage

    Hallo,

    ich hätte mal eine Frage da ich noch Anfänger bin was SQL betrifft bzw. durch meine Shopsoftware (XTcommerce) darauf angewießen bin mich halbwegs mit den Befehlen auszukennen um Zeit bei der Bearbeitung zu sparen.

    Zu meiner Frage :

    Mit folgender Abfrage erhalte ich eine bestimmte Anzahl an Artikeln :

    SELECT *
    FROM `products_description`
    WHERE `products_name` LIKE CONVERT( _utf8 '%80x80%'
    USING latin1 )
    COLLATE latin1_swedish_ci
    LIMIT 0 , 30

    Folgende Abfrage habe ich mir ergooglet :

    update products_description SET products_name = replace (products_name, 'Marmor', 'Marmor2')

    Wie kann ich diesen Befehl "suchen und ersetzen" auf die obere Abfrage einsetzen ?

    Gruß VoLuX

  • #2
    Originally posted by VoLuX View Post
    ...
    Wie kann ich diesen Befehl "suchen und ersetzen" auf die obere Abfrage einsetzen ?
    Hallo,
    indem du einfach die WHERE-Bedingung aus dem SELECT-Statement in das UPDATE-STATEMENT übernimmst.
    Allerdings macht dies wenig Sinn! Warum wählst du eine Menge A aus, um darin nur bestimmte Einträge einer Menge B zu Ersetzen die sich auch noch gegenseitig ausschließen? Ich glaube ein Produktname LIKE CONVERT( _utf8 '%80x80%' USING latin1 ) ist niemals = 'Marmor' oder sehe ich das falsch?

    Wenn du alle Produktnamen "Marmor" durch "Marmor2" ersetzen willst wäre das so möglich:
    [highlight=sql]
    update products_description SET
    products_name = 'Marmor2'
    where products_name = 'Marmor'
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      SQL Abfrage

      Also ich habe über 1000 Artikel mit folgenden Produktnamen.

      z.B. : Tischdecke Damast Marmor Eckig 80x80 cm Bügelfrei Dunkelblau
      Tischdecke Damast Marmor Eckig 110x110 cm Bügelfrei Weiss
      Tischdecke Damast Marmor Eckig 80x80 cm Bügelfrei Creme
      Tischdecke Damast Marmor Rund 135 cm Bügelfrei Hellgelb

      wenn ich jetzt die erste Abfrage anwende :

      SELECT *
      FROM `products_description`
      WHERE `products_name` LIKE CONVERT( _utf8 '%80x80%'
      USING latin1 )
      COLLATE latin1_swedish_ci
      LIMIT 0 , 30


      erhalte ich im Beispiel oben 2 Datensätze

      1. Tischdecke Damast Marmor Eckig 80x80 cm Bügelfrei Dunkelblau
      2. Tischdecke Damast Marmor Eckig 80x80 cm Bügelfrei Creme

      und genau diese Datensätze will ich bearbeiten z.B. das Marmor in Marmor2 umbenennen , aber mit dem 2. Befehl

      update products_description SET products_name = replace (products_name, 'Marmor', 'Marmor2')

      werden ja alle Datensätze geändert, wie gesagt ich will nur die selektierten Datensätze ändern.

      Comment


      • #4
        Originally posted by VoLuX View Post
        ..., wie gesagt ich will nur die selektierten Datensätze ändern.
        Originally posted by Falk Prüfer View Post
        ...indem du einfach die WHERE-Bedingung aus dem SELECT-Statement in das UPDATE-STATEMENT übernimmst.
        [highlight=sql]
        update products_description SET
        products_name = replace (products_name, 'Marmor', 'Marmor2')
        WHERE `products_name` LIKE CONVERT( _utf8 '%80x80%' USING latin1 )
        [/highlight]

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X