【问题标题】:PHP/MYSQL - Insert into ignore, and ignore a specified columnPHP/MYSQL - 插入忽略,并忽略指定的列
【发布时间】:2012-08-11 10:36:04
【问题描述】:

如果数据不存在,我只需要能够插入一行,日期列除外,它总是不同的,所以它总是会插入一个新行,即使它不应该。

我的代码:

$postID = $_POST['postID']; //example, 817
$userID = logged_in(); //example, 2
$date = time();

mysql_query("INSERT IGNORE INTO likes SET userID='$userID', postID='$postID', date='$date'");

我希望能够做类似的事情:

mysql_query("INSERT IGNORE date INTO likes SET userID='$userID', postID='$postID', date='$date'");

【问题讨论】:

    标签: php mysql insert


    【解决方案1】:

    如果您对userIDpostIDUNIQUE 约束,您可以执行您现在正在执行的任何操作,如果已经有记录,则日期列将不会更新。

    如果您想在记录确实存在的情况下更新日期列(对于该特定用户和帖子),您可以使用ON DUPLICATE KEY UPDATE date = '$date'

    【讨论】:

    • 我建议您检查文档并确保您还没有现有索引,但应该这样做:ALTER TABLE LIKES ADD UNIQUE(userID, postID);
    • 哦,现在我明白你所说的独特约束是什么意思了,我从来没有想过这样做,谢谢。我将不得不更频繁地使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2013-08-02
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2012-11-05
    • 2016-06-15
    相关资源
    最近更新 更多