MySQL - insert if doesn't exist yet MySQL - insert if doesn't exist yet sql sql

MySQL - insert if doesn't exist yet


you can use ON DUPLICATE KEY UPDATE

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

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

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

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


A little bit hacky, but if you use a SELECT derived table instead of VALUES you can do:

INSERT INTO `cron-stats`(`user`)SELECT uFROM (SELECT @dByUser AS u) xWHERE NOT EXISTS(SELECT 1 FROM `cron-stats` WHERE `user` = @dByUser)

SQL Fiddle demo


You can try this using if else condition

$chk = mysql_query("select 'the username' FROM `cron-stats`");$rs = mysql_fetch_array($chk);if($rs == ""){    $ins = mysql_query("INSERT INTO `cron-stats` (`user`) VALUES ('.(int)$d['by-user'].')");} else{    echo "Duplicate entry";}