これは大きな仕事(多くのデータ)ですか、それとも初めてですか?
はJasper/Talend ETL考えるが、私はそれはやり過ぎだと思いますあなたは本当にたくさんの操作を持っている場合LOAD DATA INFILEかを行うには、あなたのファイルを操作考えるご覧ください。
あなたのコメントを読んだ後、私はいくつかのスクリプトを作成しました。 mysqlクライアントを持つまたは作業台
CREATE DATABASE IF NOT EXISTS `test`;
USE test;
と
ログインは、私はすべてのことをテストしていませんが、うまくいけば、それはであなたを指すこれら
DROP TABLE IF EXISTS `test`.`tempjop`;
CREATE TABLE `test`.`tempjop` (
`fullname` VARCHAR(45) NOT NULL,
`description` TEXT NOT NULL
);
-- Example
-- INSERT INTO `test`.`tempjop` (`fullname`, `description`) VALUES ("JOHN DOE", "John is a programmer");
LOAD DATA INFILE 'C:/Temp/Job.txt' INTO TABLE tempjop
FIELDS
TERMINATED BY ':' OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY '\r\n';
SELECT
*
FROM
`tempjop`
;
UPDATE
`user` AS U,
`tempjop` AS J
SET
U.jobdescription = J.description
WHERE
J.fullname = CONCAT(CONCAT(U.firstname, ' '), U.lastname)
-- If you need first names only like 'MARY' uncomment this
-- OR J.fullname = U.firstname;
;
SELECT * FROM `user`;
DROP TABLE IF EXISTS `tempjop`;
そして、これら
DROP TABLE IF EXISTS `test`.`user`;
CREATE TABLE `test`.`user` (
`userid` INT NOT NULL AUTO_INCREMENT ,
`firstname` VARCHAR(45) NOT NULL ,
`lastname` VARCHAR(45) NOT NULL ,
`jobdescription` TEXT NULL,
`childhooddescription` TEXT NULL,
PRIMARY KEY (`userid`)
);
DROP TABLE IF EXISTS `test`.`tempuser`;
CREATE TABLE `test`.`tempuser` (
`fullname` VARCHAR(90) NOT NULL,
PRIMARY KEY (`fullname`)
);
-- Examples you can use
-- INSERT INTO `test`.`user` (`firstname`,`lastname`) VALUES ("bob","jones");
-- INSERT INTO `test`.`tempuser` (`fullname`) VALUES ("JOHN DOE");
INSERT INTO `test`.`user`(
`firstname`,
`lastname`
)
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS firstname,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1) AS lastname
FROM
tempuser;
SELECT * FROM `user`;
DROP TABLE IF EXISTS `tempuser`;
をお試しください右方向。
幸運。
出典
2012-03-26 06:01:01
KCD
テキストファイルに構造化データがありますかどうか –
まず、データベースを作成し、テーブルを作成し、値を挿入することを心配する前にそれらを整理する必要があります。 –