Harap salin kode Anda ke dalam postingan yang sebenarnya, dan berikan kode yang telah Anda coba gunakan untuk menyelesaikan masalah.
Fungsi substring_index mengembalikan sebagian string dengan beberapa pembatas (di sini koma), dan ketika indeks negatif dilewatkan, ia mulai mencari kecocokan dari sisi yang berlawanan, jadi -1
mengambil satu item dari daftar multi-item (untuk indeks>=2).
Per diskusi kami, saya telah mengubah cara saya melakukan ini dan menunjukkan contoh penggunaan peningkatan otomatis. (Ini dijalankan di bagian 'membangun skema' biola.)
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;
dokumentasi fungsi substring Kemungkinan duplikasi pertanyaan ini