Kopieer uw code in de daadwerkelijke publicatie en geef de code op die u hebt geprobeerd te gebruiken om het probleem op te lossen.
De functie substring_index retourneert een deel van een tekenreeks met een scheidingsteken (hier een komma), en wanneer een negatieve index wordt doorgegeven, begint het te zoeken naar overeenkomsten van de andere kant, dus -1
pakt één item uit wat anders lijsten met meerdere items zouden zijn (voor index>=2).
Volgens onze discussie heb ik de manier waarop ik dit deed aangepast en een voorbeeld getoond van het gebruik van auto-increment. (Dit wordt uitgevoerd in het gedeelte 'schema bouwen' van 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;
documentatie van de substring-functie Mogelijke duplicatie van deze vraag