Skopiuj swój kod do aktualnej publikacji i podaj kod, którego próbowałeś użyć, aby rozwiązać problem.
Funkcja substring_index zwraca część ciągu znaków z pewnym separatorem (tutaj przecinek), a po przekazaniu ujemnego indeksu rozpoczyna wyszukiwanie dopasowań z przeciwnej strony, więc -1
pobiera jeden element z tego, co w innym przypadku byłoby listą wieloelementową (dla index>=2).
Zgodnie z naszą dyskusją poprawiłem sposób, w jaki to zrobiłem i pokazałem przykład użycia automatycznego przyrostu. (Jest to uruchamiane w części „schematu budowania” skrzypiec.)
create table TAGS
(`T_ID` int auto_increment primary key, `T_Name` varchar(18))
;
insert ignore into TAGS (T_Name)
SELECT
SUBSTRING_INDEX(RES_Tags, ',', 1) as X
FROM RESOURCES
;
insert ignore into TAGS (T_Name)
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(RES_Tags, ',', 2)
,',',-1)
FROM RESOURCES
;
insert ignore into TAGS (T_Name)
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(RES_Tags, ',', 3)
,',',-1) as X
FROM RESOURCES
;
insert ignore into TAGS (T_Name)
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(RES_Tags, ',', 4)
,',',-1) as X
FROM RESOURCES
;
insert ignore into TAGS (T_Name)
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(RES_Tags, ',', 5)
,',',-1) as X
FROM RESOURCES
;
insert ignore into TAGS (T_Name)
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(RES_Tags, ',', 6)
,',',-1) as X
FROM RESOURCES
;
create table New_TAGS like TAGS;
insert into New_TAGS (T_Name)
select distinct trim(T_Name)
from TAGS;
drop table TAGS;
rename table NEW_TAGS to TAGS;
dokumentacja funkcji podciągu Możliwe powielenie tego pytania