我希望将数据插入到基于外键的表中,从本地数据文件中查找数据,但我不确定语法。我有一个单词清单:
jamba
fire
street
road在我希望插入到表中的文件中,使用
LOAD DATA LOCAL INFILE '$PATH'
INTO TABLE b1
FIELDS TERMINATED BY '\n'
(SELECT id FROM dictionary
WHERE dictionary.word='word-from-file');为了更好地描述这个项目:我试图从字典中创建一个外键表来布局一本书,就像使用字典条目号而不是用词来订购一本书。
也就是说:表中的句子The quick brown fox jumped over the lazy dog将是1024 891 26 51 75 521 1024 762 1024 641 45 (完全猜测),但其中每个数字都是字典中一个单词的id号。
第一个表是字典:
Field Type
id word
word varchar(128)第二个表是书,b1:
Field Type
pos int #Position of the word, essentially an id
wid int #A foreign key corresponding to a dictionary.word对案件敏感的问题。不要和不要是两个不同的词。
本质上,我试图执行这个操作,所以答案来自@revo:Insert mysql on foreign key id php,但是使用的是本地数据文件中的字段,而不是单独的表。
注:大小写敏感事项!我已经定义了基于
CHARACTER SET utf8 COLLATE utf8_bin发布于 2018-06-11 15:28:07
您可以使用SET子句。还要注意行终止器( Windows中的\r\n):
LOAD DATA LOCAL INFILE 'path-to-file'
INTO TABLE `b1`
LINES TERMINATED BY '\n'
(@word)
SET `wid` = (SELECT `id` FROM `DICTINARY` `d` WHERE BINARY `d`.`word` = @word);发布于 2018-06-12 04:48:59
LOAD。INSERT .. SELECT .. WHERE .. NULL在字典中插入任何新单词。UPDATE来为所有单词提取ids。这将进入额外的列。id而不是word)复制到其他表中。我将介绍更详细的http://mysql.rjweb.org/doc.php/staging_table#normalization。
同时,确保在任何存在的表中在COLLATION列上都有相同的word (例如,utf8_bin)。
如果排序规则匹配,并且字典在word上有一个索引,对于您的应用程序来说应该是相当快的。
不匹配的排序会导致索引的不使用,这将是非常缓慢的。
https://stackoverflow.com/questions/50800396
复制相似问题