MySQL,使用Images图片将数据从行移动到列

时间:2018-06-05 13:35:45

标签: mysql

表1

id  id_customer name_photo1   photo_1      name_photo2  photo_2 
1.  1           pic.png       *sdhsadj     jsjs.png     *ssksksks
2.  2           pic2.png      *sadjsad     sdds.png     *ssddsdsdw

到table2

id.  id_customer  namefoto    picture
1.   1            pic.png     *sdhsadj 
2    1            jsjs.png    *ssksksks
3.   2            pic2.png    *sadjsad 
4.   2            sdds.png    *ssddsdsdw

由于我可以使用从表格到表格2的查询来移动数据,因此列photo_1和photo_2是longblob。

由于

2 个答案:

答案 0 :(得分:2)

您需要“取消”以将列转换为记录。
您可以在INSERT INTO .. SELECT结合UNION ALL

的一个查询中执行此操作
INSERT INTO 
 table2
(
    table2.id_customer 
  , table2.namefoto
  , table2.picture
)
SELECT 
   records.id_customer 
 , records.namefoto
 , records.picture
FROM (
  SELECT 
     table1.id_customer AS id_customer 
   , table1.name_photo1 AS namefoto
   , table1.photo_1 AS picture  
  FROM 
   table1

  UNION ALL 

  SELECT 
     table1.id_customer AS id_customer 
   , table1.name_photo2 AS namefoto
   , table1.photo_2 AS picture  
  FROM 
   table1
) AS records
ORDER BY
  records.customer_id ASC   

答案 1 :(得分:0)

您可以使用INSERT INTO ... SELECT声明:

执行此操作
INSERT INTO
  table2(id_customer, namefoto, picture)
SELECT
  id_customer,
  name_photo1,
  photo_1
FROM
  table1;
INSERT INTO
  table2(id_customer, namefoto, picture)
SELECT
  id_customer,
  name_photo2,
  photo_2
FROM
  table1;