所以我想插入表格,如果没有现有的行匹配条件,例如同一产品每24小时只允许一个“喜欢”。
到目前为止,我已经确定了这一点,但是现在我需要在插入时使用哈希并加入id。我已经读过使用DUAL不允许从其他表加入,所以我在这里难倒。
任何提示将不胜感激:) 谢谢!
INSERT INTO platform.contentLikes
SELECT contents.contentId, 500000, NOW()
FROM DUAL
WHERE NOT EXISTS ( SELECT contentId, contents.contentId FROM platform.contentLikes
INNER JOIN platform.contents ON contents.hash = 'de9f21c14c1ab0bcca014825f8b09e76'
WHERE contentId = contents.contentId AND userId = 50000 )
答案 0 :(得分:0)
INSERT INTO platform.contentLikes
SELECT rs.contentId, 500000, NOW()
FROM ( SELECT contents.contentId
FROM platform.contents LEFT JOIN platform.contentLikes ON contentLikes.contentId = contents.contentId AND contents.hash = 'de9f21c14c1ab0bcca014825f8b09e76' AND userId = 50000
WHERE contentLikes.contentId IS NULL)
rs
另一种选择是在php代码中获取contentID,并使用以下编码的contentID创建插入查询:
$sql = 'INSERT INTO platform.contentLikes
SELECT ' . $contentId . ', 500000, NOW()