如果EXISTS这样做.. stumped = x

时间:2010-12-17 02:43:07

标签: php sql mysql

所以我想插入表格,如果没有现有的行匹配条件,例如同一产品每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 )

1 个答案:

答案 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()