안녕하세요,
시나리오는 다음과 같습니다.
나는 JMP 테이블을 가지고있다 : JMPCol1, JMPCol2, JMPCol3, JMPCol4, JMPCol5, JMPCol6 및 MySQL 데이터베이스 : Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8. 모든 행을 삽입하고 싶습니다. INTO DB.Table (JMPCol1, JMPCol3, JMPCol7) 값 (Field2, Field4, Field1)을 삽입하십시오.
나는 그것을하는 방법에 어떤보기든지 온라인으로 보지 않았다. 하나의 제안은 csv에 저장 한 다음 일괄 삽입을 수행하는 것이지만 더 직접적인 방법이 있다면 ....
감사.
JMP 데이터 세트와 MySQL 컬럼을 뒤집은 것처럼 보입니다. 그러나 일반적인 생각을 갖게됩니다.
이에 따르면 웹 사이트 이것은 MySQL의 테이블에 여러 값을 삽입하는 유효한 방법입니다.
INSERT INTO tableName
(column1,column2,column3,column4)
VALUES
('value1' , 'value2', 'value3','value4'),
('value1' , 'value2', 'value3','value4'),
('value1' , 'value2', 'value3','value4');
그래서 JSL로 변환하면 다음과 같이됩니다 :
dt = New Table( "Test MYSQL Insert",
Add Rows( 3 ),
New Column( "Field1", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "Field2", Character, "Nominal", Set Values( {"d", "e", "f"} ) ),
New Column( "Field3", Character, "Nominal", Set Values( {"g", "h", "i"} ) ),
New Column( "Field4", Character, "Nominal", Set Values( {"l", "m", "n"} ) )
);
sql = "Insert INTO DB.Table (JMPCol1,JMPCol3,JMPCol7) values ";
for (i = 1, i <= nrows(dt), i++,
f2 = dt:Field2[i];
f4 = dt:field4[i];
f1 = dt:field1[i];
sql = sql || evalinsert(" ('^f2^', '^f4^', '^f1^'),");
);
// Remove the last comma
len = length(sql);
sql = substr(sql, 1, (len - 1));