我有一个像这样的大型插入查询:
INSERT INTO video_tags
(vid_id, tag_id)
VALUES
(1,7),
(2,46),
(2,52) Etc. Etc.
但是我没有要插入的 tag_ids,只有标签字符串。因此,我需要在插入它们时查找标签 ID。标签存储在具有两列的查找表中:
+-----+---------+
| id | int |
| tag | varchar |
+-----+---------+
我想做这样的事情:
INSERT INTO video_tags
(vid_id, tag_id)
VALUES
(1, SELECT id FROM tags WHERE tag = 'banana'),
(2, SELECT id FROM tags WHERE tag = 'tree')
(2, SELECT id FROM tags WHERE tag = 'chimps')
...但这不起作用,而且看起来既麻烦又低效。
我也看到这样做了:
INSERT INTO video_tags
(vid_id, tag_id)
VALUES
SELECT '1', id FROM tags WHERE tag = 'banana')
...但我不能让它与多个选择一起使用。