substring_index separated into before array mysql string function split comma

mysql - separated - substring_index php



Cadena dividida delimitada por comas-> FUNCTION db.CHARINDEX no existe (2)

Necesito dividir una cadena delimitada por comas en una segunda columna. Tengo la siguiente tabla:

CL1 POS POS2 LENGHT ALLELE 1 3015108,3015109 5 A 2 3015110,3015200 10 B 3 3015200,3015300 15 C 4 3015450,3015500 20 D 5 3015600,3015700 15 E

Quiero dividir los números después de la coma en una segunda columna POS2.

CL1 POS POS2 LENGHT ALLELE 1 3015108 3015109 5 A 2 3015110 3015200 10 B 3 3015200 3015300 15 C 4 3015450 3015500 20 D 5 3015600 3015700 15 E

Así que he preguntado lo siguiente:

INSERT INTO MyTable (POS2) SELECT RIGHT(POS, CHARINDEX('','', POS) + 1 ) FROM MyTable ; It returns an error : ERROR 1305 (42000): FUNCTION test.CHARINDEX does not exist


MySQL no tiene una función CHARINDEX() incorporada. LOCATE() sería el equivalente de MySQL.

Usar SUBSTRING_INDEX() podría ser una forma más sucinta de hacer esto. Algo como esto (descargo de responsabilidad: no probado):

SUBSTRING_INDEX(POS, '','', 1) para POS

SUBSTRING_INDEX(POS, '','', -1) para POS2

Dejando de lado, puedo estar entendiendo mal lo que estás tratando de lograr, pero parece que quieres UPDATE las filas existentes, no INSERT nuevas. Algo como:

UPDATE MyTable SET POS2 = SUBSTRING_INDEX(POS, '','', -1); UPDATE MyTable SET POS = SUBSTRING_INDEX(POS, '','', 1);


MySQL tiene una función similar: InStr o para la misma sintaxis Locate.