MySQL-如果尚不存在则插入 [英] MySQL - insert if doesn't exist yet

查看:93
本文介绍了MySQL-如果尚不存在则插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要执行此MySQL查询:

I want to execute this MySQL query:

INSERT INTO `cron-stats` (`user`) VALUES (".(int)$d['by-user'].")

每当不存在这样的用户时,例如:

Whenever such user doesn't exist yet, as in:

SELECT 1
FROM `cron-stats`
WHERE `user` = ".(int)$d['by-user']."

如何在一个查询中执行此操作?

How can I execute this in one query?

推荐答案

您可以使用ON DUPLICATE KEY UPDATE

INSERT INTO `cron-stats` (`user`) VALUES ('yourValue')
ON DUPLICATE KEY UPDATE user = user;

  • 重复键更新
    • ON DUPLICATE KEY UPDATE
    • ,但是为了更好地执行INSERT语句,您需要在列user上设置UNIQUE索引.

      but in order to perform the INSERT statement well, you need to set a UNIQUE index on column user.

      如果该列还没有index,请执行以下语句,

      if the column has no index yet, execute the statement below,

       ALTER TABLE `cron-stats` ADD CONSTRAINT tb_un UNIQUE (`user`)
      

      这篇关于MySQL-如果尚不存在则插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆