mysql - 如果确实加 1,则检查记录是否存在

标签 mysql sql

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

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

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

最佳答案

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

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

例如,这是使用我的 safemysql 库的代码

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

关于mysql - 如果确实加 1,则检查记录是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22638394/

相关文章:

mysql_install_db 给出 fatal error : Could not find my-default. cnf

mysql - 如何从 SQL Server 表中选择不同的行

java - 类.forName ("com.mysql.jdbc.Driver").newInstance()

sql - 如果第一个值为空,如何在组合两个值时获取最后一个值?

SQLite 使用新生成的 id 插入

mysql - 如何从同一个表运行多个限制为 0, 1 的选择查询并合并所有结果

php curl 结果无效

SQL 联合查询按字段分组并投影到扁平结果集中

php - 如何在 laravel eloquent 中为左连接表添加别名

sql - 在SELECT语句中创建仅用于排序的自定义列,而不在SQLite的结果中显示该列?