猿问

如何批量插入Mysql并取得各自的递增ID

我用 PHP 从文章中提取关键词,平均一篇文章大约产生 100 多个词,需要录入 Mysql 的三个表,一个文章表,这个好说,一个词语表,结构如下:
id 自动递增,主键
term 词语,唯一索引
第三个表就是词语和文章的关系表(哪个词出现在哪个文章里?)。

给定词语 T,要取得它在词语表里的 ID —— 如果尚不存在,则插入之。
最笨的办法是,先 SELECT id from 词语表 WHERE term = 'T',若没有就 insert into ,再获取 ID。

一个词好说,但问题是,现在一篇文章产生了 100 多个词,总不能也这么干吧。请问如何批量取得这些词的 ID —— 如果某个词不在就插入?

我想用存储过程来办,但 Mysql 的存储过程能接收数组吗?或者存储过程接收一个TEXT参数,把 100 多个词用特殊字符拼起来?

求思路,谢谢!!

慕田峪4524236
浏览 808回答 5
5回答

拉风的咖菲猫

与其这样,不如把自增的ID,改成自定义的ID。比如可以用 redis 的inc生成自增ID。

UYOU

首先看看自己的需求什么样,主要存下来干什么,如果只是为了统计某个词的数,一个文章表,一个词语表就好了,词语表,文章id 词,统计数的时候group by一下也就好了,也就不用管存不存在。
随时随地看视频慕课网APP
我要回答