Kopier venligst din kode ind i det faktiske opslag, og angiv den kode, du har forsøgt at bruge til at løse problemet.
Substring_index-funktionen returnerer en del af en streng med et eller andet skilletegn (her et komma), og når et negativt indeks sendes, begynder den at søge efter match fra den modsatte side, så -1
griber ét element fra, hvad der ellers ville være multi-item lister (for indeks>=2).
I henhold til vores diskussion har jeg justeret, hvordan jeg gjorde dette, og viste et eksempel på brug af automatisk stigning. (Dette køres i 'build schema'-delen af fiddle.)
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;
dokumentation af understrengsfunktionen Mulig duplikering af dette spørgsmål