sql >> Databasteknik >  >> RDS >> Mysql

Delad kommaavgränsad sträng --> FUNCTION db.CHARINDEX finns inte

MySQL har ingen inbyggd CHARINDEX() fungera. LOCATE() skulle vara MySQL-motsvarigheten.

Använder SUBSTRING_INDEX() kan vara ett mer kortfattat sätt att göra detta på. Något i stil med detta (friskrivningsklausul:ej testad):

SUBSTRING_INDEX(POS, ',', 1) för POS

SUBSTRING_INDEX(POS, ',', -1) för POS2

För övrigt kanske jag missförstår vad du försöker åstadkomma, men det verkar som att du kanske vill UPPDATERA befintliga rader, inte INSERT nya? Något i stil med:

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


  1. group_concat MYSQL ny rad

  2. Skript för att hitta beroenden på flera nivåer för ett paket

  3. Pgbackrest Återställ och återställ Delta

  4. Undviker kolontecknet ':' i JPA-frågor