Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mySQL>> Chuẩn hóa một trường được phân tách bằng dấu phẩy

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận các bản ghi gần nhất đến ngày cụ thể được nhóm theo loại

  2. Làm thế nào để triển khai Materialized View với MySQL?

  3. MySQL viết trên một tệp văn bản

  4. PHP - hàm cho mysql_fetch_assoc

  5. Chuyển đổi một hàng thành các cột bằng MySQL mà không sử dụng UNIONS?