[英]One query or quick way to execute sql statement
我有一个标签表,看起来像这样:
TABLE: hashtags
hashtag_id hashtag_name - UNIQUE
1 apples
2 oranges
3 life
带有这些标签的标签的主题表如下所示:
TABLE: topic_hashtags, unique index on hashtag_id and topic_id
topic_hashtag_id hashtag_id topic_id
1 1 2
2 3 18
3 3 30
4 2 15
我一直在尝试做一个MYSQL语句(没有成功),该语句可以用伪代码执行以下操作:
INSERT INTO topic_hashtags (hashtag_id, topic_id)
VALUES(SELECT LAST_INSERT_ID(INSERT INTO hashtags (hashtag_name) VALUES('somehashtag')
ON DUPLICATE KEY SELECT hashtag_id FROM hashtags WHERE hashtag_name = 'somehashtag'), 'x');
基本上,我需要获取主题标签名称的ID(如果它不存在),然后将其插入并获取最后插入的ID,然后使用这些值将其记录到hashtag_topics表中。 关键是,ON DUPLICATE KEY不允许您选择列。 还有另一种方法可以执行此操作,还是使用多个查询更快? (我感觉不是)。 我真的不想做:
SELECT id from hashtags
if mysqli_num_rows($result) == 1):
use the id and insert
endif;
else
insert
mysqli_insert_id
use that id and insert
您无法在一个查询中完成所有这些操作。 只需使用多个查询。 因为现代数据库和文件系统在缓存方面非常出色,所以不会造成过多的负载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.