如果添加1,请检查记录是否存在

时间:2014-03-25 15:01:45

标签: mysql sql

我有一个简单的数据库,用于存储YouTube视频的Url,标题和下载次数。我现在正在使用此基本查询来插入标题和网址:

$query = "INSERT INTO youtube (ID, Titel, Downloads, Url) VALUES (NULL, '".$title."', '1', '".$my_id."')";
$mysqli->query($query);

在“下载”列中,我目前只是插入1.
我的问题是如何检查数据库中是否已经存在该URL,如果确实如此,我想编辑该记录,以便在“下载”中添加1。

3 个答案:

答案 0 :(得分:3)

INSERT INTO youtube VALUES (NULL, 'title', '1', 'id')
ON DUPLICATE KEY update Downloads = Downloads +1

请注意,您应该为所有数据库交互使用预准备语句。

以下是使用我的safemysql lib的代码

$sql = "INSERT INTO youtube VALUES (NULL, ?s, 1, ?s)
        ON DUPLICATE KEY update Downloads = Downloads + 1";
$db->query($sql, $title, $my_id);

答案 1 :(得分:0)

MySQL在插入时提供了ON DUPLICATE子句:

INSERT INTO youtube VALUES (NULL, '".$title."', '1', '".$my_id."')"
  ON DUPLICATE KEY UPDATE downloads = downloads + 1;

答案 2 :(得分:0)

您可以使用:

INSERT INTO youtube (Titel, Downloads, Url) VALUES ('$title', '1', '$url')
ON DUPLICATE KEY update Downloads = Downloads + 1

但您必须将url列定义为UINQUEPRIMARY KEY

您可以使用:

ALTER TABLE youtube
ADD UNIQUE (Url)