MySQL有一个很好的声明:LOAD XML LOCAL INFILE
例如,如果您有此表:
CREATE TABLE person (
person_id INT NOT NULL PRIMARY KEY,
fname VARCHAR(40) NULL,
lname VARCHAR(40) NULL
);
Run Code Online (Sandbox Code Playgroud)
以及名为person.xml的以下XML文件:
<list>
<person>
<person_id>1</person_id>
<fname>Mikael</fname>
<lname>Ronström</lname>
</person>
<person>
<person_id>2</person_id>
<fname>Lars</fname>
<lname>Thalmann</lname>
</person>
</list>
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
LOAD XML LOCAL INFILE 'person.xml'
INTO TABLE person
ROWS IDENTIFIED BY '<person>';
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果XML文件中的列名与表中的列名不同,该怎么办?例如:
<list>
<person>
<PersonId>1</PersonId>
<FirstName>Mikael</FirstName>
<LastName>Ronström</LastName>
</person>
<person>
<PersonId>2</PersonId>
<FirstName>Lars</FirstName>
<LastName>Thalmann</LastName>
</person>
</list>
Run Code Online (Sandbox Code Playgroud)
如何在不操作XML文件的情况下使用MySQL语句完成相同的操作?我到处搜索但找不到答案.