Vui lòng sao chép mã của bạn vào bài đăng thực tế và cung cấp mã bạn đã cố gắng sử dụng để giải quyết vấn đề.
Hàm substring_index trả về một phần của chuỗi với một số dấu phân tách (ở đây là dấu phẩy) và khi một chỉ mục âm được chuyển, nó bắt đầu tìm kiếm các kết quả phù hợp từ phía đối diện, vì vậy -1
lấy một mục từ những gì sẽ là danh sách nhiều mục (đối với chỉ mục> =2).
Theo cuộc thảo luận của chúng tôi, tôi đã điều chỉnh cách tôi thực hiện điều này và đưa ra một ví dụ về việc sử dụng tự động tăng. (Điều này được chạy trong phần 'lược đồ xây dựng' của 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;
tài liệu về hàm chuỗi con Có thể trùng lặp câu hỏi này