Dividere la stringa delimitata da virgola -> FUNCTION db.CHARINDEX non esiste

Ho bisogno di dividere la stringa delimitata da virgola in una seconda colonna che ho la seguente tabella:

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 

Voglio dividere i numeri dopo la virgola in una seconda colonna POS2 Quindi dovrebbe piacere

 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 

Quindi ho chiesto quanto segue:

 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 non ha una funzione CHARINDEX() integrata. LOCATE() sarebbe l’equivalente di MySQL.

L’utilizzo di SUBSTRING_INDEX() potrebbe essere un modo più succinto di farlo. Qualcosa di simile (disclaimer: non testato):

SUBSTRING_INDEX(POS, ',', 1) per POS

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


Per inciso, potrei fraintendere ciò che stai cercando di realizzare, ma sembra che tu voglia UPDATE le righe esistenti, non INSERT quelle nuove? Qualcosa di simile a:

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

MySQL ha una funzione simile: InStr o per la stessa syntax Locate.