2017-05-14 3 views
0

Ich versuche, eine Abfrage in MySQL zu erstellen, die einen Datumsordner aus einer Bild-URL-Zeichenfolge entfernt.So entfernen Sie Ordner aus URL-Zeichenfolge in Mysql

Die URLs befinden sich in einem bestimmten Feld in der Datenbank, das sich auf den Post-Text eines Forums bezieht, und als solches gibt es anderen Text in demselben Feld.

Eine typische URL wie folgt aussieht:

https://images.mywebsite.com/20170215/ab3c2d9b9a9e6364a07573715d29232d.jpg 

Im obigen Beispiel ich versuche 20.170.215 zu entfernen, die das Datum ist, wenn das Bild hochgeladen wurde. Grundsätzlich so, dass es aussieht:

https://images.mywebsite.com/ab3c2d9b9a9e6364a07573715d29232d.jpg 

Offensichtlich gibt es mehrere Ordner mit unterschiedlichen Daten (Ordnernamen).

Der Bildname ist variabel und immer 32 Zeichen lang (plus .jpg ext).

Der Name des Datumsordners ist variabel und hat immer 8 Zeichen. zusammen mit anderen allgemeinen Text

Tabelle „Meldungen“ Spalte aufgerufen wird, „Körper“

url ist in Körper genannt.

Vielen Dank.

+0

Können Sie die Struktur Ihrer Tabelle mit den Bildern zeigen? – xcvd

+0

Was hast du probiert? Welche Referenzseiten haben Sie gelesen? Dies ist kein "Code für mich" -Dienst. –

Antwort

0

Dies könnte für Ihren Fall arbeiten:

select concat_ws('/', 
       substring_index(url, '/', 4), 
       substring_index(url, '/', -1) 
       ) 

Das wird nicht funktionieren, wenn die Ordner verschachtelt sind.

Eine alternative Methode ist abhängig von der Länge der Saiten:

select concat(left(substr(url, length(url, -45)), 
       substring_index(url, '/', -1) 
      ) 
+0

Da dies ein Forum ist, gibt es potentiell andere URLs in demselben Feld, die unverändert bleiben müssen, folglich würde dies mit diesem Ansatz funktionieren. – MattR

0

Sie sollten SUBSTRING Funktion Mysql verwenden. Just Update Link mit neuen Link

Verwandte Themen