2013-10-21 5 views

Antwort

35
select SUBSTRING_INDEX(supplier_reference,'=',-1) from ps_product; 

Bitte http://www.w3resource.com/mysql/string-functions/mysql-substring_index-function.php zur weiteren Verwendung.

+2

Das kann einige Probleme verursachen, es gibt kein '=' in der Spalte, in diesem Fall können Sie verwenden: 'SELECT IF (LOCATE ('=', Lieferantenreferenz), SUBSTRING_INDEX (Lieferantenreferenz, '=', - 1), Standardwert) FROM ps_product; 'und Sie können stattdessen einen Standardwert festlegen, der die ursprüngliche vollständige Spalte zurückgibt. – golddragon007

+0

Was passiert, wenn String mehrere '=' enthält und ich alles nach dem '=' haben möchte? –

7

Versuchen Sie dies (es funktionieren sollte, wenn es mehrere '=' Zeichen in der Zeichenfolge sind):

SELECT RIGHT(supplier_reference, (CHARINDEX('=',REVERSE(supplier_reference),0))-1) FROM ps_product 
3

die Sie interessieren in MySQL.

right(field,((CHAR_LENGTH(field))-(InStr(field,',')))) 
+1

Danke für Ihren Beitrag. Es wäre hilfreicher, eine Erklärung hinzuzufügen, wie dies das Problem löst. –

0

Für SQL Management Studio habe ich eine Variante der Antwort von BWS verwendet. Dies erhält die Daten rechts von ‚=‘ oder NULL, wenn das Symbol nicht existiert:

CASE WHEN (RIGHT(supplier_reference, CASE WHEN (CHARINDEX('=',supplier_reference,0)) = 0 THEN 
    0 ELSE CHARINDEX('=', supplier_reference) -1 END)) <> '' THEN (RIGHT(supplier_reference, CASE WHEN (CHARINDEX('=',supplier_reference,0)) = 0 THEN 
    0 ELSE CHARINDEX('=', supplier_reference) -1 END)) ELSE NULL END 
1

In MySQL funktioniert dies, wenn es mehrere ‚=‘ Zeichen in der Zeichenfolge ist

SUBSTRING(supplier_reference FROM (LOCATE('=',supplier_reference)+1)) 

Es gibt die Teilzeichenfolge nach (+1) die erste gefunden =

+0

Dies war nützlich, wenn mehrere '=' und wir wollen Zeichenfolge nach dem ersten Auftreten von '=' –