http:// abschneiden

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

  • http:// abschneiden

    Hallo habe wieder ein problem wo ich mir nicht selbst helfen kann
    Und zwar habe ich eine mySQL DB wo ich in ca. 300 Feldern ein "http://" vor der URL habe. Dies soll so nicht sein.

    select REPLACE('www.mysql.com', 'w', 'Ww');

    Wie muss ich die beiden Befehle kombinieren damit es mir das "http://" abschneidet ?

    SELECT *
    FROM `altenheime`
    WHERE `web` LIKE '%http://%'

    Cu Sonic
    MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
    GD 2.0.28

  • #2
    Re: http:// abschneiden

    UPDATE altenheime SET web = SUBSTRING(web FROM 8) WHERE id IN (SELECT id FROM altenheime WHERE web LIKE "http://%")

    Für ne MySQL-Version die Subselects unterstützt (ich hoffe mal die Tabelle hat ein Feld id? Ansonsten irgendwas anderes einsetzen woran man einen Datensatz eindeutig identifizieren kann)
    Falls der Subselect nicht geht, zuert den Query in der Klammer ausführen und dann das Ergebnis per php so in die Klammer einsetzen

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Fehler

      SQL-Befehl: Dokumentation

      UPDATE altenheime SET web = SUBSTRING( web FROM 8 ) WHERE id IN (
      SELECT id
      FROM altenheime
      WHERE web LIKE "http://%"
      )

      MySQL meldet: Dokumentation
      #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM altenheime WHERE web LIKE "http://%")' at line 1
      EDIT:
      code -> quote

      Ich verstehe den Syntax nicht.
      Was bedeutet "FROM 8" und ich kann nirgendwo erkennen wo nun das "http://" abgeschnitten oder durch ein '' ersetzt wird.

      Cu Sonic
      Zuletzt geändert von Abraxax; 04.12.2005, 11:52.
      MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
      GD 2.0.28

      Kommentar


      • #4
        Original geschrieben von SonicCGN
        MySQL meldet: Dokumentation
        #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version
        for the right syntax to use near 'SELECT id FROM altenheime WHERE web LIKE "http://%")' at line 1
        ich würd auf eine Version tippen die keine Subqueries kann, d.h. erst den Query in der Klammer ausführen und das Ergebnis per
        Code:
        WHERE id IN (die ganzen IDs, per Komma getrennt)
        in das WHERE des anderen Queries einbauen

        Ich verstehe den Syntax nicht.
        Was bedeutet "FROM 8" und ich kann nirgendwo erkennen wo nun das "http://" abgeschnitten oder durch ein '' ersetzt wird.[/B]
        er gibt den String von `web` ab der 8. Position zurück

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          SUBSTRING(web,8); nicht FROM 8...
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #6
            und was soll denn der sub-select bewirken? wie wär's mit

            update ... set web=substring(web,8) where web like 'http://%'

            Kommentar


            • #7
              Vielen Dank.. das letztere hat geklappt.

              Cu Sonic
              MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
              GD 2.0.28

              Kommentar


              • #8
                Original geschrieben von hhcm
                SUBSTRING(web,8); nicht FROM 8...
                http://dev.mysql.com/doc/refman/5.0/...functions.html
                FROM geht auch, wer lesen kann ist klar im Vorteil...
                SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

                The forms without a len argument return a substring from string str starting at position pos. The forms with a len argument return a substring len characters long from string str, starting at position pos. The forms that use FROM are standard SQL syntax. It is also possible to use a negative value for pos. In this case, the beginning of the substring is pos characters from the end of the string, rather than the beginning. A negative value may be used for pos in any of the forms of this function.

                mysql> SELECT SUBSTRING('Quadratically',5);
                -> 'ratically'
                mysql> SELECT SUBSTRING('foobarbar' FROM 4);
                -> 'barbar'
                mysql> SELECT SUBSTRING('Quadratically',5,6);
                -> 'ratica'
                mysql> SELECT SUBSTRING('Sakila', -3);
                -> 'ila'
                mysql> SELECT SUBSTRING('Sakila', -5, 3);
                -> 'aki'
                mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
                -> 'ki'

                This function is multi-byte safe.

                Note that if you use a value less than than 1 for len, the result is always an empty string.

                SUBSTR() is a synonym for SUBSTRING().

                Original geschrieben von asp2php
                und was soll denn der sub-select bewirken? wie wär's mit

                update ... set web=substring(web,8) where web like 'http://%'
                ka...fand's nett

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar

                Lädt...
                X