Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Replace

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL Replace

    Hallo möchte gerne bestimmte Wörter aus einer Tabelle löschen aber den Rest behalten. z.b. aus "Frühstück Hotel zum Löwen" soll am Schluss nur rauskommen "Hotel zum Löwen"

    ich habe es so probiert und auch andere Methoden aber es klappt nicht - was mache ich falsch?

    hier in diesen bespiel wollte ich das immer das Wort Frühstück rausfliegt aber der Rest bleibt . Den Hotelnamen will ich auswerten. Aber manche geben halt Frühstück oder Übernachtung ein. deshalb wollte ich so eine Liste machen wo solche Wörter rausfliegen

    PHP-Code:
    $sSql " update hotel_beleg SET sHotelname = REPLACE (`sHotelname`, 'Übernachtung', '')"


  • #2
    ich habe es so probiert und auch andere Methoden aber es klappt nicht - was mache ich falsch?
    Was heisst denn "es klappt nicht" genau?
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Heißt in der DB wird das nicht ersetzt bzw. gelöscht. Müsste eigentlich - ich sehe auch kein Fehler.

      Dann, wie gesagt, suche ich noch eine Möglichkeit bestimmte Phrasen rauszulöschen mit einer Art Platzhalter. % macht ja alles davor oder dahinter aber das geht nur bei like

      habe es mal so probiert um zu sehen ob da AAA drin stehen würde aber bichts
      $sSql = " update hotel_beleg set sHotelname = REPLACE (`sHotelname`, 'Übernachtung', 'AAA')";
      wenn ich das mache - klappt es - da wird zumindest BB reingeschrieben entspricht aber nicht ganz meinen Anforderungen
      $sSql = " update hotel_beleg set sHotelname='BBB' where sHotelname like 'Übernachtung'";

      Kommentar


      • #4
        Funktioniert bei mir wie folgt (Gibt es bei dir irgendwelche Fehlermeldungen, die du noch nicht beachtet hast?):

        Code:
        +----+-------------------------------+
        | id | sHotelname                    |
        +----+-------------------------------+
        |  1 | Übernachtung Hotel zum Löwen  |
        |  2 | Übernachtung Hotel zum Ochsen |
        +----+-------------------------------+
        2 rows in set (0.00 sec)
        Code:
        mysql> UPDATE `hotel_beleg` SET `sHotelname` = REPLACE(`sHotelname`, 'Übernachtung ', '');
        Query OK, 2 rows affected (0.08 sec)
        Rows matched: 2  Changed: 2  Warnings: 0
        Code:
        +----+------------------+
        | id | sHotelname       |
        +----+------------------+
        |  1 | Hotel zum Löwen  |
        |  2 | Hotel zum Ochsen |
        +----+------------------+
        2 rows in set (0.00 sec)

        Kommentar


        • #5
          keine Fehlermeldung
          Habe vorsichtshalber mal neu geschrieben

          $sSql = " UPDATE `hotel_beleg` SET `sHotelname` = REPLACE(`sHotelname`, 'Übernachtung ', '')";
          passiert nichts

          Kommentar


          • #6
            Zeichensatzproblem wegen dem Ü?
            Zitat von nikosch
            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

            Kommentar


            • #7
              geht jetzt

              Kommentar


              • #8
                Zusatzfrage; wie kann ich den verhindern das wenn ich zB Hotel ersetzte aus Seehotel nicht See wird. was ich nicht verstehe, ich muss alles klein schreiben und dann wird alles ersetzt egal ob Hotel oder Hotel.

                damit ich eine Hotelauswertung machen kann muss ich die eingaben der User so gut wie möglich matchen. gibt es da eine bessere Möglichkeit das zu tun?

                Ich muss aus
                -Parkhotel am Rhein
                -Park Hotel am Rhein
                -Park Hotel a. Rhein

                ein gleiches machen damit ich das auswerten kann - sonst kommen immer zig diverse raus weil es jeder anders schreibt. Zweites Problem - die Eingabemaske kann ich nicht ändern weil die woanders via SAP passiert und nur zu mir überspielt wird (die belege aus der ich diese Tabelle kreiere)

                Kommentar


                • #9
                  Die Collation ist verantwortlich. Endet sie auf _ci, ist sie case insensitive (Groß-/Kleinschreibung egal).
                  Das dürfte zumindest bei einem Teil der Probleme helfen (Mit einer case-sensitiven Collation wird in "Seehotel" nichts getan, wenn "Hotel" gesucht & ersetzt werden soll).
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    ja endet auf ci - danke wieder was gelernt
                    aber zum anderen Problem wie kann ich Hotels am besten matchen oder soll ich besser einen separaten Thread dazu öffnen weil das hat ja nichts mehr mit dieser frage zu tun

                    damit ich eine Hotelauswertung machen kann muss ich die eingaben der User so gut wie möglich matchen. gibt es da eine bessere Möglichkeit das zu tun?

                    Ich muss aus
                    -Parkhotel am Rhein
                    -Park Hotel am Rhein
                    -Park Hotel a. Rhein

                    ein gleiches machen damit ich das auswerten kann - sonst kommen immer zig diverse raus weil es jeder anders schreibt. Zweites Problem - die Eingabemaske kann ich nicht ändern weil die woanders via SAP passiert und nur zu mir überspielt wird (die belege aus der ich diese Tabelle kreiere)

                    Kommentar


                    • #11
                      Naja, es wird wohl kaum ein Weg daran vorbeigehen, jedwede Kombination an möglichen Schreibweisen zu erfassen und durch eine einheitliche Schreibweise zu ersetzen.

                      Wobei das natürlich auch ein Hinweis auf fehlende Normalisierung ist (du hast offensichtlich eine hohe Redundanz der Daten in deinen Tabellen).
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar

                      Lädt...
                      X