我想执行这个 MySQL 查询:
INSERT INTO `cron-stats` (`user`) VALUES (".(int)$d['by-user'].")
每当此类用户尚不存在时,例如:
SELECT 1
FROM `cron-stats`
WHERE `user` = ".(int)$d['by-user']."
如何在一个查询中执行此操作?
我想执行这个 MySQL 查询:
INSERT INTO `cron-stats` (`user`) VALUES (".(int)$d['by-user'].")
每当此类用户尚不存在时,例如:
SELECT 1
FROM `cron-stats`
WHERE `user` = ".(int)$d['by-user']."
如何在一个查询中执行此操作?
您可以使用ON DUPLICATE KEY UPDATE
INSERT INTO `cron-stats` (`user`) VALUES ('yourValue')
ON DUPLICATE KEY UPDATE user = user;
但为了INSERT
很好地执行该语句,您需要UNIQUE
在 column 上设置一个索引user
。
如果该列还没有index
,执行下面的语句,
ALTER TABLE `cron-stats` ADD CONSTRAINT tb_un UNIQUE (`user`)
有点hacky,但如果你使用SELECT
派生表而不是VALUES
你可以这样做:
INSERT INTO `cron-stats`(`user`)
SELECT u
FROM (SELECT @dByUser AS u) x
WHERE NOT EXISTS(SELECT 1 FROM `cron-stats` WHERE `user` = @dByUser)
您可以尝试使用 if else 条件
$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";
}