Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mySQL>> Normalizacja pola rozdzielanego przecinkami

Skopiuj swój kod do aktualnej publikacji i podaj kod, którego próbowałeś użyć, aby rozwiązać problem.

Funkcja substring_index zwraca część ciągu znaków z pewnym separatorem (tutaj przecinek), a po przekazaniu ujemnego indeksu rozpoczyna wyszukiwanie dopasowań z przeciwnej strony, więc -1 pobiera jeden element z tego, co w innym przypadku byłoby listą wieloelementową (dla index>=2).

Zgodnie z naszą dyskusją poprawiłem sposób, w jaki to zrobiłem i pokazałem przykład użycia automatycznego przyrostu. (Jest to uruchamiane w części „schematu budowania” skrzypiec.)

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;

dokumentacja funkcji podciągu Możliwe powielenie tego pytania



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odkażanie i weryfikacja formularza php

  2. Wyszukiwarka słów Scrabble z symbolami wieloznacznymi

  3. opcja już wybrana przy ładowaniu strony na liście rozwijanej, a także zmienna

  4. Instrukcja MySQL, aby wybrać najnowszy wpis z określonej kolumny

  5. Jak mogę dołączyć do wielu stołów w symfony2?