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.