Separar cadena delimitada por comas -> FUNCTION db.CHARINDEX no existe

Necesito dividir la 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 Entonces debería gustar eso

 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 consultado 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 incorporada CHARINDEX() . LOCATE() sería el equivalente de MySQL.

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

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

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


Por otro lado, puedo estar entendiendo mal lo que estás tratando de lograr, pero parece que es posible que quieras 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 syntax Locate.