如何在mySQL查询中为每个结果插入记录?
您好,我在控制台或phpmyadmin sql cmd中调用mysql查询选择如何在mySQL查询中为每个结果插入记录?,mysql,Mysql,您好,我在控制台或phpmyadmin sql cmd中调用mysql查询选择 SELECT HF, ID FROM AH WHERE HF !=0 GROUP BY HF; 在此之后,我需要对上一个select中返回的每一行执行命令 foreach IF (SELECT COUNT(*) FROM `TOT` WHERE `ID` = @selectedID AND `Uto` = @selectedHF ) = 0 THEN INSERT INTO `TOT` (`
SELECT HF, ID FROM AH WHERE HF !=0 GROUP BY HF;
在此之后,我需要对上一个select中返回的每一行执行命令
foreach
IF (SELECT COUNT(*) FROM `TOT` WHERE `ID` = @selectedID AND `Uto` = @selectedHF ) = 0 THEN
INSERT INTO `TOT` (`ID`, `HF`) VALUES (@selectedID, @selectedHF);
END IF;
endforeach;
如何在mysql中执行此foreach循环?您可以通过一个查询、插入。选择不需要循环,但您确实希望检查不存在:
INSERT INTO `TOT` (`ID`, `HF`)
SELECT ID, HF
FROM AH a
WHERE HF <> 0 AND
NOT EXISTS (SELECT 1 FROM TOT WHERE TOT.ID = a.ID AND TOT.UTO = @selectedHF)
GROUP BY HF;
应该是您正在寻找的。游标可以完成任务,但看起来它也可以完成目标。游标通常不适合在可以避免的地方使用。谢谢你的回复。我把Uto=HF改为Uto=@selectedHF-这会影响你的查询吗?@peter。不,不应该。