![]() |
Datenbank: mysql • Version: egal • Zugriff über: direkt
copy oder substring ?
hallo zusammen,
ich hab in einer Tabellenspalte einen String mit einer Zahl am Ende. Wie kann ich den String per Script bearbeiten, dass nur die Zahl übrigbleibt ? Mit rtrim copy oder so? Steh grad mal wieder aufm Schlauch ;-) Danke gruss KHH |
AW: copy oder substring ?
Hat der String (vor der Zahl) eine feste Länge?
|
AW: copy oder substring ?
Zitat:
der ist vollkommen unterschiedlich lang EDIT: das einige woran man festmachen könnte ist ein Unterstrich vor der Zahl der Unterstich kann aber auch sonst im String vorkommen :-( |
AW: copy oder substring ?
Dann hab ich leider keine Idee, zumindest serverseitig :(
|
AW: copy oder substring ?
Du könntest von hinten nach vorne durchsuchen, solange bis ein invalides Zeichen (also nicht 0 - 9 kommt).
Also Pseudocode (s ist der durchsuchte String und zahl ist nachher die Zahl):
Code:
MfG
zahl = '';
i = länge(s); solange i > 0 & s[i] = ziffer dann zahl = s[i] + zahl; i--; Fabian |
AW: copy oder substring ?
Zitat:
|
AW: copy oder substring ?
Besser wäre es serverseitig ( und so den Datenverkehr zu begrenzen)
|
AW: copy oder substring ?
Moin KHH,
ich weiss nicht, ob MySQL das kann, bei MS-SQL würde ich es so machen:
Code:
SELECT
IrgendEinName = CASE WHEN SpaltenName <> '' THEN SUBSTRING(SpaltenName,1,LEN(SpaltenName)-1) END FROM TabellenName |
AW: copy oder substring ?
Evtl. ginge es auch mit einer Kombination aus reverse, locate und substring (
![]() erst den String umdrehen, dann nach dem Unterstrich suchen, ab dieser Position (+1) dann aus dem Original herauskopieren. Wäre zumindest einen Versuch wert. |
AW: copy oder substring ?
Zitat:
|
AW: copy oder substring ?
Das Umdrehen ist ja nur dazu gedacht, die Position des letzten Unterstrichs zu finden (evtl. gibt es auch dafür eine Funktion, ich hab nur auf die Schnelle keine gefunden). Kopiert werden soll ja aus dem Original.
|
AW: copy oder substring ?
Zitat:
|
AW: copy oder substring ?
Ohne Gewähr (ich hab hier kein MySQL am Laufen):
SQL-Code:
SELECT SUBSTRING(Feld,-(LOCATE('_',REVERSE(Feld)) - 1)) FROM Tabelle
|
AW: copy oder substring ?
Zitat:
SQL-Code:
SELECT REVERSE( SUBSTRING( Feld, -( LOCATE( '_', REVERSE( Feld ) ) - 1 ) ) )
FROM Tabelle |
AW: copy oder substring ?
Wozu zurückdrehen, ich kopiere doch aus dem Original :gruebel:
|
AW: copy oder substring ?
Wenn ich das richtig sehe, dann unterstützt MySQL reguläre Ausdrücke. :shock:
![]() Damit sollte das kein Problem sein, wenn es tatsächlich so unterstützt wird. |
AW: copy oder substring ?
Bei Regenechsen halte ich mich raus, das sind für mich böhmische Dörfer :mrgreen:
|
AW: copy oder substring ?
Moin,
okay hab mich vertan ;) Aber zu den Regexen: Wie willst du denn damit nur den Abschnitt mit den Ziffern herausfinden? Ich kenne mich jetzt mit (My)SQL nicht so aus, aber wie kann ich denn ein SQL Statement sagen, gebe mir nur die Ziffern nach den Unterstrich zurück? @Detlef: So schwer ist das ja nicht ;)
Code:
Das dürfte zumindest erkennen, ob das Dingens valide ist (sofern der Unterstrich kein Sonderzeichen ist.
.*_[0-9]+
MfG Fabian |
AW: copy oder substring ?
Zitat:
|
AW: copy oder substring ?
SQL-Code:
supi, ich danke euch, so funktionierts ;-)
SELECT REVERSE( SUBSTRING( Feld, -( LOCATE( '_', REVERSE( Feld ) ) - 1 ) ) )
FROM Tabelle |
AW: copy oder substring ?
Sicher?
Weil damit dürfte die Zahl falschherum raus kommen. Das äußerste Reverse einfach wegmachen (wie es der Poster dieser Lösung inzwischen selber eingestanden hat :) ) MfG Fabian |
AW: copy oder substring ?
Sicher, dass das erste REVERSE dahinmuss?
[edit] :lol: 2 Doofe, ein Gedanke [/edit] |
AW: copy oder substring ?
Zitat:
|
AW: copy oder substring ?
[OT] Nimm es nicht so tragisch: to err is human, to forgive is divine. You erred, we forgive you :mrgreen: [/OT]
|
AW: copy oder substring ?
Tut mir ja leid, hatte aber keine Lust auf lange Erklärungen :)
Also ich mache es aus positiver sicht: Nehm das von Detlef, da nicht nochmal reversed muss :) MfG Fabian |
AW: copy oder substring ?
Zitat:
Einen Fehler erkennen ist schwer Einen Fehler zugeben ist Hardcore Ich wollte mich einfach nur mal fordern :mrgreen: |
AW: copy oder substring ?
Zitat:
Wobei ein weiteres Problem auftritt :-( mit
Code:
bekomme ich den Fehler :
update jos_joomgallery set imgtitle = (SELECT SUBSTRING(imgtitle,-(LOCATE('_',REVERSE(imgtitle)) - 1)) FROM jos_joomgallery )
You can't specify target table 'jos_joomgallery' for update in FROM clause die Verwendung einer View im select statement funktioniert auch nicht :-( EDIT: auch die Verwendung eines hilfsfeldes imgtitel2 funkt nicht :-( |
AW: copy oder substring ?
SQL-Code:
UPDATE jos_joomgallery
SET imgtitle = SUBSTRING(imgtitle,-(LOCATE('_',REVERSE(imgtitle)) - 1)) |
AW: copy oder substring ?
Zitat:
du bist der Beste! Danke Gruss KHH |
AW: copy oder substring ?
Zum Glück funktioniert es, ich will ja nicht Schuld sein, wenn Du Dein Joomla zerschießt :zwinker:
|
AW: copy oder substring ?
Zitat:
naja, ich mach vor solchen Sachen grundsätzlich ne Sicherung der DB :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz