如何批量插入Mysql并取得各自的递增ID
php吧
全部回复
仅看楼主
level 8
mypcluna 楼主
我用 PHP 从文章中提取关键词,平均一篇文章大约产生 100 多个词,需要录入 Mysql 的三个表,一个文章表,这个好说,一个词语表,结构如下:
id 自动递增,主键
term 词语,唯一索引
第三个表就是词语和文章的关系表(哪个词出现在哪个文章里?)。
给定词语 T,要取得它在词语表里的 ID —— 如果尚不存在,则插入之。
最笨的办法是,先 SELECT id from 词语表 WHERE term = 'T',若没有就 insert into ,再获取 ID。
一个词好说,但问题是,现在一篇文章产生了 100 多个词,总不能也这么干吧。请问如何批量取得这些词的 ID —— 如果某个词不在就插入?
我想用存储过程来办,但 Mysql 的存储过程能接收数组吗?或者存储过程接收一个TEXT参数,把 100 多个词用特殊字符拼起来?
求思路,谢谢!!
2018年02月24日 05点02分 1
level 10
批量取得那些词需要分词工具,然后取最后一条主键ID,然后自己根据主键值自己,生成主键id,和词语对应好,然后用insert ignore into遇到重复词语忽略,直接批量插入数据,(需要考虑并发可以用队列)
2018年02月24日 10点02分 2
level 15
看不懂看不懂,完全看不懂.
我是新手[乖]
2018年02月24日 17点02分 3
三年了,现在看懂了吗?
2021年09月11日 08点09分
1