mysql批量更新后返回id_如何批量插入Mysql并取得各自的递增ID
用存儲過程搞定了,大家可以把下面代碼粘到NAVICAT里試一下:
CREATE DEFINER=root@% PROCEDURE fTest(IN a_Terms TEXT)
BEGIN
DECLARE l_TermsLen, l_TermLen INT;
DECLARE l_Term VARCHAR(20);
-- 測試用的臨時表
DROP TABLE IF EXISTS temp_terms;
CREATE TEMPORARY TABLE temp_terms (c_Term VARCHAR(20));
SET l_TermsLen = CHAR_LENGTH(a_Terms);
WHILE (l_TermsLen > 0) DO
SET l_Term = SUBSTRING_INDEX(a_Terms, ',', 1);
SET l_TermLen = CHAR_LENGTH(l_Term);
SET a_Terms = SUBSTRING(a_Terms, l_TermLen + 2);
SET l_TermsLen = l_TermsLen - (l_TermLen + 1);
-- 按需把l_Term插入到詞語表,取得ID;這里插入到臨時表,最后顯示出來
INSERT INTO temp_terms VALUES (l_Term);
END WHILE;
-- 顯示拆分出的詞語
SELECT * FROM temp_terms;
END
然后新建查詢,執行:
CALL fTest('abc,你們,好')
輸出:
abc
你們
好
現在只需執行兩個查詢就能完成任務:
1 把文章插入到文章表,取得自動遞增ID
2 把所有詞用逗號連接成一個字符串,和文章ID一起作為參數,調用存儲過程,由它負責解碼各個詞,查詢它們的ID,按需插入到詞語表,最后把每個詞的ID和文章ID一起插入到關系表中。
總結
以上是生活随笔為你收集整理的mysql批量更新后返回id_如何批量插入Mysql并取得各自的递增ID的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 骑士卡的卡号在哪里
- 下一篇: linux cmake编译源码,linu